VBScript ADO プログラミング
ADO プロジェクトの作成
Microsoft Visual Basic、Scripting Edition はタイプ ライブラリをサポートしていないため、プロジェクトで ADO を参照する必要はありません。 そのため、コマンド ライン補完などの関連する機能はサポートされません。 また、既定では、ADO 列挙定数は VBScript では定義されません。
ただし、ADO には、VBScript で使用する次の定義を含む 2 つのインクルード ファイルが用意されています。
サーバー側スクリプトの場合は、既定で c:\Program Files\Common Files\System\ado\ フォルダーにインストールされている Adovbs.inc を使用します。
クライアント側スクリプトの場合は、既定で c:\Program Files\Common Files\System\msdac\ フォルダーにインストールされている Adcvbs.inc を使用します。
これらのファイルから定数定義をコピーして 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 データ型のみがサポートされています。 データをバリアント型に格納できます。VBScript によってキャストが行われるため、データは適切に機能します。 ADO で必要な型を認識し、それに応じてバリアント型 (Variant) の値を変換します。
エラー goto <ラベル>VBScript 内で を使用することはできません。
VBScript では、Msgbox、Date、IsNumeric など、組み込みの Visual Basic 関数の一部がサポートされています。 ただし、VBScript は Visual Basic のサブセットであるため、すべての組み込み関数がサポートされているわけではありません。 たとえば、VBScript では、Format 関数とファイル I/O 関数はサポートされていません。