Visual Basic を使用してSQL Anywhere データベースに接続

本書では、SQL Anywhere 7.x データベースへの接続をVisual Basic で動的に作成する方法について説明します。

Visual Basic アプリケーションをSybase SQL Anywhere データベースに接続させることが望ましい場合がよくあります。Adaptive Server OLEDB プロバイダを使用すれば、この処理を迅速かつ容易に実現することができます。本書では、SQL Anywhere データベースへの接続をVisual Basic で動的に作成する方法について説明します。

ソフトウェア要件

・ Sybase SQL Anywhere 7.x
・ Microsoft Visual Basic version 6.0
・ Microsoft ADO 2.x
・ Windows 2000、98、NT

Visual Basic でSQL Anywhere データベースへの接続を作成するには、次の手順に従います。

1. Visual Basic を起動します。

2. ‘Standard EXE’をプロジェクト・タイプとして選択し、[Open]をクリックします。
     これにより、汎用’フォーム’を含んだ標準IDE が生成されます。

3. [File]->[ Save Project]を選択して、このプロジェクトを保存します。チュートリアルを行っている間は、このプロジェクトを頻繁に保存することをおすすめします。

4. [Command]ボタンをフォームに配置します。

a. 左側のツールボックスから[Command]ボタンを選択します。

b. [Command1]ボタンをフォーム上に描きます。

5. [Product]メニューから[References]を選択します。

[References]ウィンドウが表示されます。

6. 下方向にスクロールして、[Microsoft ActiveX Data Objects 2.x Library]チェックボックスを選択します。

ADO オブジェクトをプロジェクトに含めることにより、既存のツールを使用してデータベースに接続できます。

7. [OK]をクリックしてADO リファレンスを含めてから、メイン・プロジェクト・ウィンドウに戻ります。

8.

手順4 で作成した[Command1]ボタンをダブルクリックします。
Visual Basic コードの追加や編集が可能な[Project Code]ウィンドウが開きます。

9. Command1_Click()ボタンのプロシージャ宣言に次のコードを入力します。

Private Sub Command1_Click()
Dim adoConn As New ADODB.Connection
adoConn.Provider = “ASAProv”
adoConn.ConnectionString = “uid=dba;pwd=sql;dbf=” & App.Path &
“\asademo.db”
adoConn.Open
MsgBox “Connected Successfully!”
End Sub

10. [F5]キーを押して、プロジェクトを実行します。

11. [Command1]ボタンをクリックします。

12. これで、ASA データベースに接続できるようになります。

ASA データベースに接続すると、“Connected Successfully”というメッセージがダイアログに表示されます。

コードの仕組み

1. Dim adoConn As New ADODB.Connection

接続オブジェクト(この場合は、adoConn)が宣言されます。キーワードNew を指定すると、オブジェクトの自動インスタンス生成が可能になるため、そのオブジェクトをすぐに使用することができます。

2. adoConn.Provider = “ASAProv”

接続のタイプは、接続オブジェクトのProvider プロパティで指定されます。ASA 接続の場合は、指定したASAProv という名前のプロバイダが使用されます。実際には、このコードによって、SQL Anywhere OLE DB プロバイダを使用することがADO に伝えられます。

3. adoConn.ConnectionString = “uid=dba;pwd=sql;dbf=” & App.Path & ” \asademo.db”接続文字列(プロバイダ専用)は、ConnectionString プロパティで指定する必要があります。

4. adoConn.Open

このコードでは、同一マシン上で実行されているローカル・データベースとの通信が確立されます。
SQL Anywhere には、asademo.db という名前のサンプル・データベースが付属しています。
デフォルトでは、このデータベースが配置されているフォルダはC:\ProgramFiles\Sybase\SQL Anywhere 7 です。
Visual Basic アプリケーションが保存されているフォルダ(たとえば、C:\ASADemo)にasademo.db をコピーしてください。
上記のコードでは関数app.path を使用しています。この関数を使用して理由としては、デフォルトでは、Visual Basic はファイルがデフォルト・ディレクトリに配置されているかどうかを確認するからです。したがって、Visual Basic アプリケーションの実行元である現在のディレクトリ内でVisual Basic にasademo を検索させる必要があります。