VBScript での ADO プログラミング

ADO プロジェクトの作成

Microsoft Visual Basic、Scripting Edition ではタイプ ライブラリがサポートされていないため、プロジェクト内で ADO を参照する必要はありません。 そのため、コマンド ライン入力候補などの関連する機能はサポートされません。 また、既定では、ADO 列挙定数は VBScript では定義されません。

ただし、ADO では、VBScript で使用される次の定義を含む 2 つのインクルード ファイルを用意しています。

  • サーバー側スクリプトの場合は、Adovbs.inc を使用します。これは既定では、c:\Program Files\Common Files\System\ado\ フォルダーにインストールされます。

  • クライアント側スクリプトの場合は、Adcvbs.inc を使用します。これは、既定では、c:\Program Files\Common Files\System\msdac\ フォルダーにインストールされます。

これらのファイルから定数定義をコピーして ASP ページに貼り付けることができます。サーバー側スクリプトを実行している場合は、Adovbs.inc ファイルを Web サイト上のフォルダーにコピーし、次のように 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 の相違点

VBScript で ADO を使用することは、構文の使用方法など、さまざまな点で、Visual Basic で ADO を使用するのと似ています。 ただし、次のような大きな相違点があります。

  • VBScript でサポートされるデータ型は Variant のみです。この場合、さまざまな種類のデータを保持できます。 必要なデータを Variant データ型で格納することができます。VBScript によってキャストが実行されるので、データは適切に機能します。 それにより、ADO で必要とされる型が認識され、適宜、Variant の値が変換されます。

  • VBScript 内で on error goto <label> を使用することはできません。

  • VBScript では、MsgboxDateIsNumeric などの組み込みの Visual Basic 関数の一部がサポートされています。 ただし、VBScript は Visual Basic のサブセットであるため、すべての組み込み関数がサポートされているわけではありません。 たとえば、VBScript では Format 関数とファイル I/O 関数をサポートしていません。