注: | Windows 32 ビット・オペレーティング・システム用の DB2 AD クライアントでは、 Microsoft Visual Basic のプリコンパイラーを提供していません。 |
この節では、以下のトピックを取り上げています。
ActiveX Data Object (ADO) を使用すれば、 OLE DB Provider を使用して、 データベース・サーバー内のデータにアクセスしたり、操作したりするアプリケーションを作成できます。 ADO の主要な利点は、 速度が速く、使用が容易で、メモリーのオーバーヘッドが少なく、 ディスク・フットプリントが小さいことです。
ADO を Microsoft Visual Basic で使用する場合は、 ADO タイプのライブラリーへの参照を設定する必要があります。 以下のようにします。
<version_number> は、ADO ライブラリーの現行バージョンです。
このようにすると、 VBA オブジェクト・ブラウザーと IDE エディターを介して、 ADO オブジェクト、メソッド、および特性にアクセスできるようになります。
完全な Visual Basic プログラムには、 フォーム、その他のグラフィカルな要素が含まれており、 このプログラムは Visual Basic 環境の内部で表示する必要があります。 以下に、 DB2 sample にアクセスするプログラムの一部をなすコマンドを示します。 これらのコマンドは、ODBC のカタログに記録されます。
接続を確立します。
Dim db As Connection Set db = New Connection
ローカル・カーソル・ライブラリーによって提供されるクライアント側のカーソルを設定します。
db.CursorLocation = adUseClient
ADO が Microsoft ODBC Driver を使用するようにプロバイダーを設定し、 ユーザー ID/パスワードなしで (つまり、現在のユーザーを使用) "sample" データベースをオープンします。
db.Open "SAMPLE"
レコード・セットを作成します。
Set adoPrimaryRS = New Recordset
SELECT ステートメントを使用して、レコード・セットにデータを入れます。
adoPrimaryRS.Open "select EMPNO,LASTNAME,FIRSTNME,MIDINIT,EDLEVEL,JOB from EMPLOYEE Order by EMPNO", db
この時点で、プログラマーは ADO メソッドを使用して、 次のレコード・セットに移動する場合など、データにアクセスできるようになります。
adoPrimaryRS.MoveNext
レコード・セットの現行レコードを削除します。
adoPrimaryRS.Delete
またプログラマーは、以下のようにして、 個々のフィールドにアクセスすることもできます。
Dim Text1 as String Text1 = adoPrimaryRS!LASTNAME
DB2 の %DB2PATH%\samples\ADO\VB に、 Visual Basic ADO のサンプル・プログラムがあります。
Remote Data Objects (RDO) は、 ODBC を介してリモート・データ・ソースにアクセスするための情報モデルを提供します。 RDO が提供するオブジェクトのセットを使用すれば、 データベースへの接続、照会の実行、 ストアード・プロシージャーの実行、結果の操作、 変更のサーバーへのコミットが容易になります。 RDO は、リモート ODBC リレーショナル・データ・ソースにアクセスするために特別に設計されたものであり、 複雑なアプリケーション・コードを使用せずに ODBC を使用することが容易になっています。 そのため、ODBC ドライバーによって公開されるリレーショナル・データベースにアクセスするための主な手段となっています。 RDO はオープン・データベース・コネクティビティー (ODBC) API を介したシン・コード層を実装しています。 また、接続の確立、結果セットとカーソルの作成を行い、ワークステーション資源を最小限に抑えて複雑なプロシージャーを実行するドライバー・マネージャーも実装しています。
RDO を Microsoft Visual Basic で使用する場合は、 Visual Basic のプロジェクトへの参照を設定する必要があります。 以下のようにします。
<version_number> は、RDO の現行バージョンです。
完全な Visual Basic プログラムには、 フォーム、その他のグラフィカルな要素が含まれており、 このプログラムは Visual Basic 環境の内部で表示する必要があります。 以下に、 DB2 プログラムの一部を成す Visual Basic コマンドを示します。 DB2 プログラムは、sample データベースに接続して、 EMPLOYEE 表のすべての列を選択するレコード・セットをオープンし、 メッセージ・ウィンドウに従業員名を一人一人表示します。
Dim rdoEn As rdoEngine Dim rdoEv As rdoEnvironment Dim rdoCn As rdoConnection Dim Cnct$ Dim rdoRS As rdoResultset Dim SQLQueryDB As String
接続ストリングを割り当てます。
Cnct$ = "DSN=SAMPLE;UID=;PWD=;"
RDO 環境を設定します。
Set rdoEn = rdoEngine Set rdoEv = rdoEn.rdoEnvironments(0)
データベースに接続します。
Set rdoCn = rdoEv.OpenConnection("", , , Cnct$)
レコード・セットの SELECT ステートメントを割り当てます。
SQLQueryDB = "SELECT * FROM EMPLOYEE"
レコード・セットをオープンして、照会を実行します。
Set rdoRS = rdoCn.OpenResultset(SQLQueryDB)
レコード・セットの終わりに While not を置き、 メッセージ・ボックスに、 表にあるラストネームとファーストネーム (1 回につき 1 人の従業員) を表示します。
While Not rdoRS.EOF MsgBox rdoRS!LASTNAME & ", " & rdoRS!FIRSTNME
レコード・セット内の次の行に移動します。
rdoRS.MoveNext Wend
プログラムをクローズします。
rdoRS.Close rdoCn.Close rdoEv.Close
DB2 の %DB2PATH%\samples\RDO に、 Visual Basic RDO のサンプル・プログラムがあります。
この節では、 Microsoft Visual Basic でのオブジェクトのリンクと埋め込み (OLE) オートメーション UDF、 およびストアード・プロシージャーの OLE オートメーション制御プログラム・サンプルへのアクセスについて説明します。
OLE オートメーション UDF およびストアード・プロシージャーは、 OLE が言語独立であるので、 OLE オートメーション・サーバーのメソッドを公開し、 そのメソッドを DB2 を使用する UDF として登録することによって、 任意の言語で実現できます。 OLE オートメーション・サーバーの開発をサポートするアプリケーション開発環境には、 以下の特定のバージョンが含まれます。 Microsoft Visual Basic、Microsoft Visual C++、Microsoft Visual J++、 Microsoft FoxPro、Borland Delphi、Powersoft PowerBuilder、 および Micro Focus COBOL。 さらに、たとえば Microsoft Visual J++ に付属するような、 OLE 用に同梱されている Java の簡単なオブジェクトも、 OLE オートメーションを介してアクセスできます。
OLE オートメーション・サーバーの開発の詳細については、 該当するアプリケーション開発環境の資料を参照する必要があります。 OLE オートメーションを使用した DB2 プログラミングの詳細については、 アプリケーション開発の手引き を参照してください。
Microsoft Visual Basic は、OLE オートメーション・サーバーの作成をサポートします。 新しい種類のオブジェクトは、 Visual Basic ではクラス・モジュールを Visual Basic プロジェクトに追加することによって作成します。 メソッドは、 公用サブプロシージャーをクラス・モジュールに追加することによって作成します。 これらの公用プロシージャーは、 DB2 に OLE オートメーション UDF およびストアード・プロシージャーとして登録できます。 OLE サーバーの作成および構築の詳細については、 Microsoft Visual Basic のマニュアル、 Creating OLE Servers, Microsoft Corporation, 1995、 および Microsoft Visual Basic によって提供される OLE サンプルを参照してください。
DB2 は、 Microsoft Visual Basic に含まれている OLE オートメーション UDF およびストアード・プロシージャーのサンプルを提供しており、 それはディレクトリー %DB2PATH%\samples\ole\msvb にあります。 OLE オートメーション UDF およびストアード・プロシージャーのサンプルを作成して実行する方法については、 %DB2PATH%\samples\ole の README ファイルを参照してください。