Поделиться через


Программирование для ADO на VBScript

Область применения: Access 2013, Office 2013

Создание проекта ADO

Microsoft Visual Basic, Scripting Edition не поддерживает библиотеки типов, поэтому вам не нужно ссылаться на ADO в проекте. Следовательно, связанные функции, такие как завершение командной строки, не поддерживаются. Кроме того, по умолчанию в VBScript не определены перечисляемые константы ADO.

Однако ADO предоставляет два включающих файла, содержащие следующие определения, которые будут использоваться с VBScript:

  • Для сценариев на стороне сервера используйте Adovbs.inc, который по умолчанию устанавливается в папку c:\Program Files\Common Files\System\ado\.

  • Для сценариев на стороне клиента используйте Adcvbs.inc, который по умолчанию устанавливается в папку c:\Program Files\Common Files\System\msdac\.

Вы можете скопировать и вставить определения констант из этих файлов на страницы ASP или, если вы выполняете скрипты на стороне сервера, скопировать файл Adovbs.inc в папку на веб-сайте и сослаться на него со страницы ASP следующим образом:

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

Создание объектов ADO в VBScript

Инструкцию Dim нельзя использовать для назначения объектов определенного типа в VBScript. Кроме того, VBScript не поддерживает синтаксис New, используемый с оператором Dim в Visual Basic для приложений. Вместо этого необходимо использовать вызов функции CreateObject :

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

Примеры VBScript

Следующий код является универсальным примером программирования на стороне сервера VBScript в asp-файле:

 
<%  @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> 

Более конкретные примеры VBScript включены в документацию по ADO. Дополнительные сведения см. в разделе Примеры кода ADO в Microsoft Visual Basic Scripting Edition.

Различия между VBScript и Visual Basic

Использование ADO с VBScript во многих отношениях похоже на использование ADO с Visual Basic, включая использование синтаксиса. Однако существуют некоторые существенные различия:

  • VBScript поддерживает только тип данных Variant, который может содержать различные типы данных. Вы можете хранить необходимые данные в типе данных Variant, и данные будут функционировать соответствующим образом из-за приведения, выполняемого VBScript. Он распознает тип, необходимый для ADO, и преобразует значение в Variant соответствующим образом.

  • Нельзя использовать on error goto <label> в VBScript.

  • VBScript поддерживает некоторые встроенные функции Visual Basic, такие как Msgbox, Date и IsNumeric. Тем не менее, так как VBScript является подмножеством Visual Basic, поддерживаются не все встроенные функции. Например, VBScript не поддерживает функцию Format и функции ввода-вывода файла.