MySQLサーバーはインストール済みでIPアドレスは「192.168.0.1」とします。また、Ver3.51のODBCドライバ(MyODBC)がIISと同じサーバーにインストールされていることが前提です。
異なるバージョンのODBCドライバを使う場合は「ConnectionString」の「DRIVER=」をWindowsコントロールパネルの「ODBC データソース アドミニストレータ」の「ドライバ」タブ
を見て書き換えてください。
次の例ではMySQLから取得したデータを2次元配列「arrData」に取得しています。
Dim objConn, objRS ' ADO用
Dim strServer, strUser, strPwd ' サーバーのIPアドレス,ユーザー名,パスワード
Dim strDB, strTable ' データベース名,テーブル名
Dim strSql ' SQL文
Dim arrData ' 結果取り込み用2次元配列
strServer = "192.168.0.1" ' MySQLのIPアドレス
strUser = "testuser" ' ユーザー名
strPwd = "testpass" ' パスワード
strDB = "testdb" ' データベース名
strTable = "test" ' テーブル名
' オブジェクトをセット
Set objConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")
' 接続文字列を作成
objConn.ConnectionString = "Provider=MSDASQL;" & _
"Extended Properties=""DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=" & strServer & ";USER=" & strUser & ";PASSWORD=" & strPwd & ";" & _
"DATABASE=" & strDB & ";OPTION=16387"""
' SQL文を作成
strSql = "SELECT * FROM " & strTable & " ORDER BY Class"
' 接続を開く
objConn.Open
' レコードセットを開く
objRS.Open strSql, objConn
' レコードセットの内容を2次元配列に取り込む
arrData = objRS.GetRows()
' レコードセットと接続を閉じる
objRS.Close
objConn.Close
' オブジェクトを解放
Set objRS = Nothing
Set objConn = Nothing
「ConnectionString」で「OPTION」を指定しています。これは 1=カラムの実際のサイズを最適化しない、
2=MySQLは(影響を受けたレコードではなく)見つかったレコードを返す、
16384=LONGLONG型の数値はINT型に変換する、
を意味します(1+2+16384)。
「16384」についてはVer2.6(SP1)以降のMDACを導入している場合には不要です。オプションの詳細についてはMyODBCのサイトで確認してください。
この例ではRecordsetオブジェクトの「GetRows」によって「arrData」にデータを入れるようになっているので、これを2重ループでテーブルに書き出したりして利用します。
|