VBScript

VBScript

腳本語言
VBScript是Visual Basic Script的簡稱,即Visual Basic腳本語言,有時也被縮寫為VBS。[1]它是一種微軟環境下的輕量級的解釋型語言,它使用COM組件、WMI、WSH、ADSI訪問系統中的元素,對系統進行管理。同時它又是asp動态網頁默認的編程語言,配合asp内建對象和ADO對象,用戶很快就能掌握訪問數據庫的asp動态網頁開發技術。
  • 中文名:
  • 外文名:VisualBasic Script
  • 别名:
  • 簡稱:VBScript
  • 性質:腳本語言
  • 縮寫:VBS

産品應用

腳本用于動态網頁制作,在HTML(超文本标記語言)中插入腳本,可以使網頁有一些動态效果,還可以實現一些交互操作,例如,目前在登錄一個網站時通常要輸入驗證碼,而使用腳本語言就可以對驗證碼進行有效性驗證。網頁上最常用的是JavaScript、VBScript這兩種腳本語言。

腳本語言的特點為:

1)簡單易學。

2)解釋性語言。

3)集成成熟技術

VBScript是微軟開發的一種腳本語言。使用VBScript,可通過Windows腳本宿主調用COM,所以可以使用Windows操作系統中可被使用的程序庫。

VBScript一般被用在以下個方面:VBScript經常被用來完成重複性的Windows操作系統任務;用來指揮客戶方的網頁浏覽器。在這一方面,VBS與JavaScript是競争者,因為本文的實驗環境基于Window平台,為了達到更好的兼容性和性能選用VBScript。

由于VBScript可以通過Windows腳本宿主調用COM,因而可以使用Windows操作系統中可以被使用的程序庫,比如它可以使用Microsoft Office的庫,尤其是使用Microsoft Access和MicrosoftSQL Server的程序庫,當然它也可以使用其它程序和操作系統本身的庫。

VBScript是基于Visual Basic程序語言的腳本語言,是IIS(互聯網信息服務,InternetInformation Services)的默認源程序語言。VBScript最開始是通過事件驅動來擴展客戶端HTML的功能,可在網頁上處理、控制對象,它能與HTML頁面很好的結合使用,VBScript可是操作HTML頁面,還可對頁面中的事件做出響應。另外,VBScript還提供了一些應用對象,使編寫者更方便地編寫腳本,用于實現一些特有功能。

應用領域

操作系統

VBScript可以被用來自動地完成重複性的Windows操作系統任務。在Windows操作系統中,VBScript可以在Windows Script Host的範圍内運行。Windows操作系統可以自動辨認和執行*.VBS和*.WSF兩種文件格式,此外Internet Explorer可以執行HTA和CHM文件格式。

VBS和WSF文件完全是文字式的,它們隻能通過少數幾種對話窗口與用戶通訊。HTA和CHM文件使用HTML格式,它們的程序碼可以象HTML一樣被編輯和檢查。在WSF、HTA和CHM文件中VBScript和JavaScript的程序碼可以任意混合。HTA文件實際上是加有VBS、JavaScript成分的HTML文件。CHM文件是一種在線幫助,用戶可以使用專門的編輯程序将HTML程序編輯為CHM。

網頁浏覽器

網頁中的VBS可以用來指揮客戶方的網頁浏覽器(浏覽器執行VBS程序)。VBS與JavaScript在這一方面是競争者,它們可以用來實現動态HTML,甚至可以将整個程序結合到網頁中來。至今為止VBS在客戶方面未能占優勢,因為它隻獲得Microsoft Internet Explorer的支持(Mozilla Suite可以通過裝置一個外挂來支持VBS)。而JavaScript則受到所有網頁浏覽器的支持。在Internet Explorer中VBS和JavaScript使用同樣的權限,它們隻能有限地使用Windows操作系統中的對象。

網頁服務器

在網頁服務器方面VBS是微軟的Active Server Pages的一部分,它與JavaServer Pages和PHP是競争對手。在這裡VBS的程序碼直接嵌入到HTML頁内,這樣的網頁以ASP結尾。網頁服務器Internet信息服務執行ASP頁内的程序部分并将其結果轉化為HTML傳遞給網頁浏覽器供用戶使用。這樣服務器可以進行數據庫聞訊并将其結果放到HTML網頁中。

數據類型

VBScrip 隻有一種數據類型,稱為Variant。Variant是一種特殊的數據類型,根據使用的方式,它可以包含不同類别的信息。因為Variant是VBScript中唯一的數據類型,所以它也是VBScript中所有函數的返回值的數據類型。

錯誤代碼

ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件

MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E21)-->sql語句出錯(數據類型不匹配或表名(字段名)錯誤或表處于編輯狀态,或表不存在于conn打開的數據庫中)

MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E14)-->sql語句出錯(字段名錯誤,或數據類型不匹配)

MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E07)-->sql語句出錯(要插入或更新的字段的類型與變量數據類型不匹配)

MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E57)-->sql語句出錯(要插入或更新的數據溢出)

MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E10)-->sql語句出錯(update字段名或要更新的數據類型錯誤)

MicrosoftOLEDBPRoviderforODBCDrivers(0x80004005)-->sql語句出錯(要插入或更新的字段的數值不能為空值)

MicrosoftOLEDBPRoviderforODBCDrivers(0x80004005)-->打開數據庫出錯,沒有在指定目錄發現數據庫

MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E37)-->沒有發現表

MicrosoftVBscript運行時錯誤(0x800A000D)-->錯誤引用rs變量(rs對像已關閉或未定義)

MicrosoftVBscript運行時錯誤(0x800A01C2)-->vbscript腳本錯誤(vbscript語句出錯)

MicrosoftVBscript運行時錯誤(0x800A0006)-->vbscript腳本錯誤(溢出錯誤)

MicrosoftVBscript編譯器錯誤(0x800A040E)-->缺少loop

MicrosoftVBscript編譯器錯誤(0x800A03EA)-->缺少if或endif

MicrosoftVBscript編譯器錯誤(0x800A03EE)-->語句未結束(缺少")")

MicrosoftVBscript編譯器錯誤(0x800A03F6)-->if語句出錯(缺少endif)

MicrosoftVBscript運行時錯誤(0x800A005B)-->缺少set

MicrosoftVBscript運行時錯誤(0x800A0005)-->變量未定義

MicrosoftVBscript編譯器錯誤(0x800A03F9)-->if語句缺少then

MicrosoftVBscript編譯器錯誤(0x800A0411)-->dim語句定義錯誤

MicrosoftVBscript編譯器錯誤(0x800A0408)-->sql語句錯誤

Microsoft VBScript運行時錯誤(0x800A01B6)錯誤原因:set rs=server.create......少了set

ADODB.Recordset(0x800A0BB9)-->sql語句出錯(sql語句或conn語句未定義或對一個rs屬性進行賦值時發生錯誤)

ADODB.Recordset(0x800A0CC1)-->rs對像出錯(rs對像本身不存在或錯誤地引用了一個不存在的字段名)

ADODB.Recordset(0x800A0BCD)-->rs對像出錯(記錄集中沒有記錄卻對記錄集進行操作)

ADODB.Recordset(0x800A0E78)-->rs對像出錯(記錄集不存在,缺少rs.open語句)

ADODB.Recordset(0x800A0CC1)-->rs對像出錯(引用了一個不存在的字段名)

ADODB.Recordset(0x800A0E7D)-->conn定義錯誤

ADODB.Recordset(0x800A0CB3)-->數據庫以隻讀方式打開,無法更新數據

語法錯誤

如果VBScript語句結構違反了一個或多個VBScript腳本語言語法規則,就會産生VBScript語法錯誤。

錯誤通常在執行程序前,編譯程序時産生。

十進制、十六進制、格式說明

1001 800A03E9 内存不足

1002 800A03EA 語法錯誤

1003 800A03EB 缺少“:”

1005 800A03ED 需要'('

1006 800A03EE 需要')'

1007 800A03EF 缺少“]”

1010 800A03F2 需要标識符

1011 800A03F3 需要'='

1012 800A03F4 需要'If'

1013 800A03F5 需要'To'

1014 800A03F6 需要'End'

1015 800A03F7 需要'Function'

1016 800A03F8 需要'Sub'

1017 800A03F9 需要'Then'

1018 800A03FA 需要'Wend'

1019 800A03FB 需要'Loop'

1020 800A03FC 需要'Next'

1021 800A03FD 需要'Case'

1022 800A03FE 需要'Select'

1023 800A03FF 需要表達式

1024 800A0400 需要語句

1025 800A0401 需要語句的結束

1026 800A0402 需要整數常數

1027 800A0403 需要'While'或'Until'

1028 800A0404 需要'While,'、'Until,'或語句未結束

1029 800A0405 需要'With'

1030 800A0406 标識符太長

1031 800A0407 無效的數

1032 800A0408 無效的字符

1033 800A0409 未結束的串常量

1034 800A040A 未結束的注釋

1037 800A040D 無效使用關鍵字'Me'

1038 800A040E 'loop'沒有'do'

1039 800A040F 無效'exit'語句

1040 800A0410 無效'for'循環控制變量

1041 800A0411 名稱重定義

1042 800A0412 必須為行的第一個語句

1043 800A0413 不能賦給非Byval參數

1044 800A0414 調用Sub時不能使用圓括号

1045 800A0415 需要文字常數

1046 800A0416 需要'In'

1047 800A0417 需要'Class'

1048 800A0418 必須在一個類的内部定義

1049 800A0419 在屬性聲明中需要Let,Set或Get

1050 800A041A 需要'PRoperty'

1051 800A041B 參數數目必須與屬性說明一緻

1052 800A041C 在類中不能有多個缺省的屬性/方法

1053 800A041D 類初始化或終止不能帶參數

1054 800A041E PRopertyLet或Set至少應該有一個參數

1055 800A041F 不需要的'Next'

1056 800A0420 隻能在‘PRoperty’或’Function’或’Sub’上指’Default’

1057 800A0421 說明'Default'必須同時說明'Public'"

1058 800A0422 隻能在PRoperty Get中指定'Default'

運行錯誤

如果VBScript腳本執行系統無法實施的操作,則會産生VBScript運行時錯誤。隻有在運行腳本、為變量表達式賦值或

分配内存時,才會産生VBScript運行時錯誤。

十進制、十六進制、格式說明

5 800A0005 無效過程調用或參數

6 800A0006 溢出

7 800A0007 内存不足

9 800A0009 下标越界

10 800A000A 該數組為定長的或臨時被鎖定

11 800A000B 被零除

13 800A000D 類型不匹配

14 800A000E 字符串空間溢出

17 800A0011 無法執行請求的操作

28 800A001C 堆棧溢出

35 800A0023 未定義Sub或Function

48 800A0030 加載DLL錯誤

51 800A0033 内部錯誤

52 800A0034 壞文件名或數

53 800A0035 文件未找到

54 800A0036 壞文件模式

55 800A0037 文件已經打開

57 800A0039 設備I/O錯誤

58 800A003A 文件已經存在

61 800A003D 磁盤空間已滿

62 800A003E 輸入超出文件尾

67 800A0043 文件太多

68 800A0044 設備不可用

70 800A0046 權限禁用

71 800A0047 磁盤未準備好

74 800A004A 不能用不同的驅動器重新命名

75 800A004B 路徑/文件訪問錯誤

76 800A004C 路徑未找到

91 800A005B 未設置對象變量

92 800A005C For循環未初始化

94 800A005E 非法使用Null

322 800A0142 不能建立所需臨時文件

424 800A01A8 需要對象

429 800A01AD ActiveX部件無法創建對象

430 800A01AE 類不支持自動化

432 800A01B0 在自動化操作中未找到文件名或類名

438 800A01B6 對象不支持該屬性或方法

440 800A01B8 Automation錯誤

445 800A01BD 對象不支持此操作

446 800A01BE 對象不支持指定的參數

447 800A01BF 對象不支持當前的區域設置

448 800A01C0 未找到命名參數

449 800A01C1 參數不可選

450 800A01C2 錯誤的參數個數或無效的參數屬性值

451 800A01C3 對象不是一個集合

453 800A01C5 指定的dll函數未找到

455 800A01C7 代碼源鎖錯誤

457 800A01C9 這個鍵已經是本集合的一個元素關聯

458 800A01CA 變量使用了一個VBScript中不支持的自動化(Automation)類型

462 800A01CE 遠程服務器不存在或不能訪問

481 800A01E1 無效圖片

500 800A01F4 變量未定義

501 800A01F5 違法的分配

502 800A01F6 腳本對象不安全

503 800A01F7 對象不能安全初始化

504 800A01F8 對象不能安全創建

505 800A01F9 無效的或不合格的引用

506 800A01FA 類未被定義

507 800A01FB 發生異常

5016 800A1398 需要正則表達式對象

5017 800A1399 正則表達式中的語法錯誤

5018 800A139A 錯誤的數量詞

5019 800A139B 在正則表達式中需要

5020 800A139C 在正則表達式中需要

5021 800A139D 字符集越界

32811 800A802B 元素未找到

優缺點

優點

由于VBScript由網頁浏覽器解釋執行,不需要增大服務器的負擔。

易學。

在所有2000/98SE以後的Windows版本都可直接使用。

可以使用其它程序和可使用的物件(尤其Microsoft Office)。

缺點

現在VBS無法作為電子郵件的附件了。Microsoft Outlook拒絕接受VBS為附件,收信人無法直接使用VBS附件。

VBS的各種編輯程器不受歡迎。

操作系統沒有任何特别的保護設施。VBS程序與其它JS、EXE、BAT或CMD程序一樣對待。操作系統沒有監察惡意功能的能力。

相關詞條

相關搜索

其它詞條