この記事について
| 環境 | Windows7 64bit、UWSC、MySQL ODBCドライバ(32bit) |
|---|---|
| 目的 | UWSCからODBC経由でmysqlに接続する |
| 結果 | ADODB.Connection/RecordsetをCreateOleObjで作ってクエリ実行できた |
つまずきポイント要約
- UWSCが32bitなのでODBCドライバも32bit版を選ぶ
- 64bit WindowsではC:\Windows\SysWOW64\odbcad32.exeから設定する(管理ツールのは64bit版で無効)
- ドライバは「Unicode Driver」を選ぶ。ANSIは日本語WindowsだとSHIFT-JISの意味らしい
UWSCでODBCを使ってmysqlに接続したときの覚書。
【環境】
Windows7 64bitで接続。mysqlもlocalhostにある。
1.MySQL用のODBCドライバのインストール
windowsからmysqlに接続するため、MySQL用のODBCドライバをインストールする。参考
windows7は64bitを利用しているが、UWSCが32bitなので、ドライバは32bit版を選択する。
ダウンロードページで、「login」や「sign up」を求められるが、不要ならその下の「No thanks, just start my download.」のリンクから回避できる。
ダウンロードしたら、インストールする。
2.ODBCにmysqlの情報を設定する
インストールできたら、データソース(ODBC)をこちらから設定する。
C:\Windows\SysWOW64\odbcad32.exe
※こちらにあるのは64bit版なので、無効(32bit版windowsなら有効だろう)
コントロール パネル\すべてのコントロール パネル項目\管理ツール\データ ソース (ODBC)
設定時、インストールしたドライバが二種類表示されるが「MySQL ODBC 5.x Unicode Driver」を選択。「MySQL ODBC 5.x ANSI Driver」は、日本語WindowsではSHIFT-JISを意味するらしい。
※localhost以外のPCから接続できない場合は、こちら
3.UWSCでmysqlに接続してみる
参考ページ
参考スクリプト
Open メソッド (ADO Recordset)
Fields コレクション
FieldsコレクションとFieldオブジェクトの使い方
mysqlに接続するサンプルコード
objConn = CreateOleObj("ADODB.Connection")
objConn.Open("ODBCで作った名前") // コネクション(接続)実行
Dim RS = CreateOleObj("ADODB.Recordset")
Dim StrSQL = "Select * From テーブル名" //クエリ
RS.Open(StrSQL, objConn) // SQL実行 レコードセット取得
While ! RS.EOF
Print_ALLFields(RS) // 全フィールドのプリント
RS.MoveNext // 次のレコードへ
WEnd
sleep(100) //printが消えないように
//全フィールドのプリント
Procedure Print_ALLFields(a_RS)
Dim i, Str
For i = 0 To a_RS.Fields.Count - 1
Str = Str + "[" + i + " " + a_RS.Fields[i].name + " = " + a_RS.Fields[i].value + "]"
Next
Print Str
FEnd
