PrismBox > Tips >

 
ASP Tips
 
No.0002 MySQLにADOでアクセス
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重ループでテーブルに書き出したりして利用します。