|
実行環境:NT4.0WS(JP)SP3 + VB5 Ent(JP)SP2 ADOはVBの組み込みオブジェクトとして使用できます。これらが使用できるか確認するには、[プロジェクト]メニューの[参照設定]を使用します。正しく組み込まれていると[参照可能なライブラリファイル]リストボックスに[Microsoft OLE DB ActiveX Data Objects 1.0 Library]が追加されています。 オブジェクトブラウザでは、[ADODB]と表示されます。以下はオブジェクトブラウザ上で、ADODBを選択した時に[説明ペイン]に表示される説明です。
Library ADODB
C:\Program Files\Common Files\System\ADO\MSADO10.DLL
Microsoft OLE DB ActiveX Data Objects 1.0 Library
デザイン時または実行時にADOで作成できるオブジェクト クラスは、ADODB.Connection、ADODB.CommandおよびADODB.Recordsetの3つです。
'Dimステートメント
Dim cn as New ADODB.Connnection
'CreateObject関数
Dim cn as Object
Set cn = CreateObject("ADODB.Connection")
ADOのデフォルトのOLE DB ODBCプロバイダを使用して、SQL Serverに接続するにはADODB.ConnectionオブジェクトのOpenメソッドで接続します。
Dim cn as New ADODB.Connection
'DSN接続
cn.Open "pubs", "sa"
cn.Close
'DSN無し接続
cn.Open "Driver={SQL Server};Server=Srv;Uid=sa;Pwd=;Database=pubs"
cn.Close
DSN接続では、"pubs"というODBCデータソースを使用しユーザー"sa"で接続します。DSN無し接続では、SQL Server ODBC ドライバを使用し、"Srv"というサーバーに"sa"で接続しデフォルトデータベースとして"pubs"を設定しています。接続に使用されるOLE DBプロバイダはProviderプロパティを通して指定できます。デフォルトではMSDASQLが設定されています。OLE DB SDK1.1にはサンプルのテキスト プロバイダが付属しています。これを使用するには以下のようにします。
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
cn.Provider = "sampprov"
cn.Open "data source=C:\oledbsdk\samples\sampclnt\"
Set rs = cn.Execute("customer.csv")
:
(注:私の環境では実行時エラー(Openメソッドが失敗)が発生しますが、
[デバッグ]ボタン押下後、再度続けて実行すると正常に動いているようです)
テーブルをオープンするにはADODB.RecordsetオブジェクトのOpenメソッドかADODB.ConnectionオブジェクトのExecuteメソッドを使用します。
Dim cn as New ADODB.Connection
Dim rs as New ADODB.Recordset
cn.Open "pubs", "sa"
rs.Open "SELECT * FROM titles"
:
rs.Close
cn.Close
----------------------------------------------------------
Dim cn as New ADODB.Connection
Dim rs as ADODB.Recordset
cn.Open "pubs", "sa"
Set rs = cn.Execute("SELECT * FROM titles")
:
rs.Close
cn.Close
1つ目の例ではアーリーバインドしたADODB.RecordsetオブジェクトのOpenメソッドを使用していますが、この時は現在開いている接続を使用してテーブルをオープンします。2つめの例ではADO.Connectionメソッドを使用して、テーブルを開いていますが、当然の事ながら結果を返すクエリー文字列を実行した時のみADODB.Recordsetオブジェクトに結果を返すことができます。 今回のサンプルなどはOLE DB SDK 1.1と「Microsoft SQL Server Developer'sResource Kit」の「ADOおよびMicrosoft SQL Server開発者ガイド」を使用しました。特に後者はADOのドキュメント(日本語)だけでなく、VB(4.0)でのサンプルソースも付属していますので、Microsoft社のサイトからダウンロードしてドキュメント等、読まれてはいかがでしょうか。
今回はSQL Serverへの接続とテーブルへの照会をしごく簡単にしてみましたが、これだけを見ても、現在のRDOあるいはDAOに似ていると感じられるでしょう。
参考資料:
Microsoft SQL Server Developer's Resource Kit
http://www.microsoft.com/japan/bkoffice/ntsql/DRK.htm
・ADOおよびMicrosoft SQL Server開発者ガイド
・Microsoft SQL ServerのためのODBC使用法
・ODBCプログラマのためのOLE DB
Microsoft Universal Data Access
http://www.microsoft.com/data/
OLE DB SDK 1.1
Microsoft Visual C++5.0付属
2週間に渡り、お知らせした「VB5でActiveX Data Objectsを使う!!」は今週で終了です。皆さんも是非お試しください。 (TAK) |