VBScript ADO 编程

创建 ADO 项目

Microsoft Visual Basic Scripting Edition 不支持类型库,因此无需在项目中引用 ADO。 因此,不支持命令行完成等关联功能。 此外,默认情况下,VBScript 中未定义 ADO 枚举常量。

但是,ADO 提供了两个包含文件,其中包含用于 VBScript 的以下定义:

  • 对于服务器端脚本编写,请使用默认安装在 c:\Program Files\Common Files\System\ado\ folder 文件夹中的 Adovbs.inc。

  • 对于客户端脚本编写,请使用默认安装在 c:\Program Files\Common Files\System\msdac\ 文件夹中的 Adcvbs.inc。

可以将这些文件中的常量定义复制并粘贴到 ASP 页面中,或者,如果要执行服务器端脚本编写,请将 Adovbs.inc 文件复制到网站上的文件夹,并从 ASP 页面中对其进行引用,如下所示:

<!--#include File="adovbs.inc"-->  

在 VBScript 中创建 ADO 对象

不能使用 Dim 语句将对象分配到 VBScript 中的特定类型。 此外,VBScript 不支持 Visual Basic for Applications 中用于 Dim 语句的 New 语法。 必须改用 CreateObject 函数调用:

Dim Rs1  
Set Rs1 = Server.CreateObject( "ADODB.Recordset" )  

VBScript 示例

以下代码是 Active Server Page (ASP) 文件中 VBScript 服务器端编程的一般示例:

<%  @LANGUAGE="VBSCRIPT" %>  
<%  Option Explicit %>  
<!--#include File="adovbs.inc"-->  
<HTML>  
    <BODY BGCOLOR="White" topmargin="10" leftmargin="10">  
  
    <!-- Your ASP Code goes here -->  
<%  
Dim Source  
Dim Connect  
Dim Rs1  
  
Source = "SELECT * FROM Authors"  
Connect = "Provider=sqloledb;Data Source=srv;" & _  
    "Initial Catalog=Pubs;Integrated Security=SSPI;"  
  
Set Rs1 = Server.CreateObject( "ADODB.Recordset" )  
Rs1.Open Source, Connect, adOpenForwardOnly  
Response.Write("Success!")  
%>  
    </BODY>  
</HTML>  

ADO 文档中包含很多特定的 VBScript 示例。 有关详细信息,请参阅 Microsoft Visual Basic Scripting Edition 中的 ADO 代码示例

VBScript 与 Visual Basic 之间的差异

将 ADO 与 VBScript 结合使用在很多方面类似于将 ADO 与 Visual Basic 结合使用,包括语法的使用方式。 但是,存在一些重大差异:

  • VBScript 仅支持 Variant 数据类型,该数据类型可以保存不同类型的数据。 可以将所需的数据存储在 Variant 数据类型中,由于 VBScript 执行的强制转换,数据将正常运行。 它识别 ADO 所需的类型,并相应地转换 Variant 中的值。

  • 不能在 VBScript 中使用 on error goto <标签>。

  • VBScript 支持一些内置的 Visual Basic 函数,例如 Msgbox、Date 和 IsNumeric。 但是,由于 VBScript 是 Visual Basic 的子集,因此并非所有内置函数都受支持。 例如,VBScript 不支持 Format 函数和文件 I/O 函数。