Windows 7(x64)+MySQL 5.1+VB6で開発

Windows 7(64bit)版+MySQLで、データ取得からデータ更新まであれこれをするまでのメモ。
久々にプログラム開発をしてみた。
まあ言語は何でもよかったんだけど、久々にVisual Basic6.0で。

・・・で、VB6インストールしたんだけど、SP6が入らない。
仕方ないのでSPあてずに作業を続ける。
(後日SPを当てる方法がわかりました)

MySQLのサーバーは別マシンですでに立ってるので、
そこに間借りすることにする。

とりあえず、ODBCドライバを落としてくる。
Windows (x86, 64-bit), MSI Installer
https://dev.mysql.com/downloads/connector/odbc/

データベースの作成時に、文字コードは、utf8_unicode_ci で作成しておけば良い。
文字化けの原因は、ここが utf8以外になっていることがほとんどなので、まずはここを疑う。

VB側で参照設定を

VB6側では事前に、
Microsoft ActiveX Data Objects 2.8 Library を参照しておくこと。

MySQLへの接続

以下のコードで接続する。

Dim ConnectionString As String
Const DB_SERVER = "localhost"
Const DB_PORT_NO = "3306"
Const DB_MAME = "test_db"
Const DB_USER = "test_user"
Const DB_PASSWORD = "test_pass"

Dim ADO_Conn As New ADODB.Connection


ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=" & DB_SERVER & ";" & _
"PORT=" & DB_PORT_NO & ";" & _
"DATABASE=" & DB_MAME & ";" & _
"USER=" & DB_USER & ";" & _
"PASSWORD=" & DB_PASSWORD & ";"

ADO_Conn.Open ConnectionString

SQL実行

とりあえずサンプルでデータをINSERTしてみる。

ADO_Conn.Execute "INSERT INTO test_tbl(id,memo) VALUES(1,'ほげ') "
ADO_Conn.Execute "INSERT INTO test_tbl(id,memo) VALUES(841,'yayoi') "

データの取得

データの取得はこんな感じ

Dim rs As New ADODB.Recordset

rs.Open "SELECT * FROM test_tbl", ADO_Conn

Do While Not rs.EOF
    Debug.Print rs!id, rs!Memo
    rs.MoveNext
Loop
Set rs = Nothing

データの書き込み

データの書き込みはこんな感じ。
日本語の処理に苦労するとおもったけど・・・

ADO_Conn.Execute "UPDATE test_tbl SET memo = 'ζ*゚ワ゚)ζ<うっうー' WHERE id =841 "

phpMyAdminで確認すると・・・
おおすごい!文字化けせず書き込めてる!
昔文字コードで苦労した記憶があったんだけど、今のODBCドライバが賢いのかな?

とにかくこれでMySQLのデータベースに対し、VB6でアクセスするなんて鬼畜な
社内アプリをゴリゴリ書く準備はできた。
一部のデータはApache+PHPで読み書きさせるんですよ。

どれだけ外道プログラマーなんだかw

コメント

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