UWSCでODBCを使ってmysqlに接続する

この記事について

環境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

関連記事

タイトルとURLをコピーしました