- ベストアンサー
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にアクセスするようにするには、 どのようなプログラムを書けばよいのでしょうか。 どなたかご教授よろしくお願いいたいます。
- みんなの回答 (1)
- 専門家の回答
お礼
tsukasa-12rさん ご返答ありがとうございます。 csprojをテキストエディタで開いて編集しようとしたところ <PropertyGroup>... <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> というような箇所が3箇所あったのですべて AnyCPU->x86と直してプロジェクトを開いたのですが、ビルドされなくなってしまいました。 Expressエディションはできないのかもしれません。 Standard 以上の Edition であればプロジェクトのプロパティで AnyCPU/x86(32bi)/x64(64bit) でできるということですので、試しては無いのですが、解決といたします。