64bit環境で32bitのodbc参照
いつもお世話になっております。
以下のC#のプログラムを
windows 7 home premium(x64)
visual studio 2008 express edtion (x86)
でビルドして実行すると
一番最後の行(da.Fill(dt);)のところで
ERROR [IM002] [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。
という例外がでます。
//CSVファイルのあるフォルダ
string csvDir = @"D:\";
//CSVファイルの名前
string csvFileName = "test.csv";
//接続文字列
string conString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="
+ csvDir + ";Extensions=asc,csv,tab,txt;";
System.Data.Odbc.OdbcConnection con =
new System.Data.Odbc.OdbcConnection(conString);
string commText = "SELECT * FROM [" + csvFileName + "]";
System.Data.Odbc.OdbcDataAdapter da =
new System.Data.Odbc.OdbcDataAdapter(commText, con);
//DataTableに格納する
DataTable dt = new DataTable();
da.Fill(dt);
たしかにスタート->コントロールパネル->管理ツール->データソース(ODBC)の
ドライバーの欄を見るとMicrosoft Text Driverが入っていません。
しかし、
C:\Windows\SysWOW64\odbcad32.exe
を実行してドライバーを見ると
Microsoft Text Driver (*.txt; *.csv)
が入っているので、32ビットのほうには入っていると思っています。
下記サイトに以下のような記載があるのですが、
http://technet.microsoft.com/ja-jp/windows/gg182762
-----------------------------------------------------------------------
データベースに接続する構成ができずにデータベースに接続できないといったことが起こります。しかし、32 ビットと 64 ビットの特性を正しく理解できれば、「%windir%\SysWOW64\odbcad32.exe」へアクセスすることで今まで通り ODBC ドライバを扱うことができます。
-----------------------------------------------------------------------
%windir%\SysWOW64\odbcad32.exeにアクセスするようにするには、
どのようなプログラムを書けばよいのでしょうか。
どなたかご教授よろしくお願いいたいます。
お礼
ありがとうございます。 使えないことや、dllの説明まで頂きありがとうございます。