C#2.0時代のゲームプログラミング(41)

話が脇道にそれた。何故、いまさらODBCなのか?最初、Yanesdk.NETでDBへの対応をしようと考えた。MySQLを使う場合でもConnector/NET経由でutf8でやればC#MySQL clientまでがunicodeで取り扱えることは知っていた。(ちなみにConnector/NET経由でもucs2は使えない。これはMySQL clientがucs2に未対応だからだ。)


ところが、Connector/NETを用いる場合、MySql.Data.dllへの参照設定が必要となる。Yanesdk.NETは、Windows用,linux用,MacOS用とでそれぞれ異なるコンパイルオプションでコンパイルする必要があるので、3つのプラットフォーム×{ Debug , Release } = 6つの構成を持っている。ここにMySql.Data.dllを参照するかしないかの組み合わせを入れると6×2 = 12の構成が必要になる。構成さえ分けてしまえば、前回紹介した方法で、特定の構成のみMySql.Data.Dllへの参照を追加することが出来る。


しかし、12も構成があるのはちょっと嫌である。


だから、出来ることならばMySql.Data.dll自体をYanesdk.NETに含めてしまいたい。「Yanesdk.NETを使う場合は、MySQL.Data.dllは別途downloadしてきてください」というのは、お手軽感に欠けるので私の希望としてはビルドパッケージに何もかも含めておきたい。


ところがConnector/NETのライセンス形態はGPLなのである。MySQL.Data.dllを含めるとGPL汚染されてしまう。よってこれをYanesdk.NETに含めるわけにはいかない。それに対して、ODBCへのアクセス手段ならば.NET FrameworkのSystem.Data.Odbcに提供されているので、これで何とかならないかと画策した次第である。(しかし前々回書いたようにこれはこれで前途多難なのだが…)