接続成功
試行錯誤を繰り返すうちになんとかC#からConnector/NET経由でMySQLServerへ接続することに成功.これでcharsetの検証できる.(あとはC/NETをコンパイルできるようになれれば完璧だが道は遠い)
コードはこんな感じ.
using System; namespace CNTNS { class ConnectorNETTest { public static void Main() { Console.WriteLine("Hello World!"); MySql.Data.MySqlClient.MySqlConnection conn; string myConnectionString; myConnectionString = "server=127.0.0.1;uid=root;" + "pwd=;database=test;charset=sjis"; conn = new MySql.Data.MySqlClient.MySqlConnection(); conn.ConnectionString = myConnectionString; conn.Open(); conn.Close(); Console.WriteLine("Hello MySQL!"); } } }
しかし問題はどうやったらEclipseのC#プラグインでJavaでいうところのClasspathをDLLに通せるのかという点.どなたか通りすがりの親切な方いないかしら.
コマンドプロンプトからC#コンパイラを"csc.exe -help"と叩いたらどうやら"/r:<ライブラリへのパス>"で指定できそうだったのでConnector/NETのDLLを指定してやったらうまくコンパイルできた.
>csc /r:D:\mysql\mysql-connector-net-1.0.6-noinstall\bin\net-1.1\release\MySql.Data.dll ConnectorNETTest.cs
ConnectionStringのところに"charset=コード名"を渡してあげれば良い.ここで渡せる名前は昨日のエントリで書いたとおり.
実行するとどうやら最後まで実行されたらしい.
D:\share\workspace\current\CSharp>ConnectorNETTest.exe Hello World! Hello MySQL!
MySQLサーバ側で出力しているGeneral Logを見てみると
10 Connect root@localhost on test 10 Query SHOW VARIABLES 10 Query SHOW COLLATION 10 Query SET NAMES sjis;SET character_set_results=NULL 10 Init DB test
4行目が若干不恰好ながらもConnector/Jとまったく同じような動きをしていることが確認できた.closeしたつもりがされてないのはちょっと気になるが,今回はそこは気にしない.
とりあえずこれで検証ができる.