windows 64bitのODBCドライバ
- 2009.05.07 Thursday
- 15:06
32bitで使っていたODBCドライバや32bitでしか対応していないODBCドライバを
64bitで利用したいときは、これで回避可能のようです。
参考URL
http://support.microsoft.com/kb/942976/ja
http://kjunichi.cocolog-nifty.com/misc/2008/09/64vistapostgres.html
ようやく接続できた。
と思ったら、
ERROR [IM002] [Microsoft][ODBC Driver Manager]
なエラーが
少々手こずりそう
●9/2 加筆
ずいぶん端折ったので、加筆します。
さて、私のマシンは64bitです。
というわけで、postgresqlの32bitドライバが使えない・・・
32bit版のドライバ
http://www.interwiz.com/software/PsqlODBC/
http://nami.jp/psqlodbc/
というわけで、ネットをさまよって、64bit版のドライバ
http://www.ne.jp/asahi/inocchichichi/entrance/psqlodbc/indexj.html
を見つけた訳です。
このページの
psqlodbc_AMD64.zip 64ビット実験版
がそれ。 intelでも動きます(私はQuadコア)。
現在は
http://www.postgresql.org/ftp/odbc/versions/msi/
からダウンロード出来ます。
(x64と書いてあるのが64bit版)
とりあえず、インストールして接続OK
しかし、今度は開発環境(VB2008)からつながらなくなった・・・。
サーバエクスプローラでも、データソースからはウンともスンとも・・・
うーん、何でだ?
そういえば、32bit版を入れたときには接続できたぞ(64bit版を入れる前にアンインストールしていた)
しかし、32bit版だとコンパイル後は接続できないし・・・
ということで、さらにネットをさまよう・・・
で探した結果、どうやら32bitと64bit版、それぞれのドライバを入れておかないと動かないらしいことが判明した(※)。
つまり、VS2008などの開発環境は32bitのODBCを参照し、コンパイルしたアプリケーションは64bitで接続しているようだ。
ということで、上記参考URLを見ながら接続っと
でようやく開発でもコンパイル後でも接続できたっと。
放置していました、
ERROR [IM002] [Microsoft][ODBC Driver Manager]
は32bit版を入れて64bitと同じデータソース名のDNSを作ることで回避できました(上記※の部分)。
補足
32bit版ODBC(Odbcad32.exe)は
c:¥Windows¥SysWoW64
64bit版ODBCは
c:¥Windows¥System32 またはコンパネの管理
にそれぞれあります。
上記で紹介した32bit版postgresqlドライバで文字化けしてしまうという方は、
こちらの最新ドライバを入れてみてください(64bit版もあります)。
ODBCへ登録するときは、PostgreSQL Unicodeのドライバを選択します。
追記20140331
64bit版のODBCドライバを入れる際、次のエラーが表示されてインストールできないことがあります。
Error installing ODBC driver: PostgreSQL ANSI(x64),ODBC errot 13:システム エラー コード 126: 指定されたモジュールが見つかりません。...¥psqlodbc30a.dll)のために、PostgreSQL ANSI(x64) ODBC ドライバーのセットアップ プログラムを読み込むことができません。Verify that the file PostgreSQL ANSI(x64) exists and that you can access it.
このエラーはMicrosoft Visual C++ SP1 再頒布可能パッケージ (x64)が入っていないために起きるエラーのようで、
MSからダウンロードすることになります。
とりあえずメッセージをCancelしてインストールを中止して、
落としたC++ランタイムをインストールしてみましょう。
追記170718 postgresの最新版ドライバを入れたところ、ODBC設定までは順調にできたが、 VS2015に登録しようとしたら、
初期化文字列の形式が使用に適しません。index xx で始まっています。 パラメーター名:value ※"使用"は"仕様"のことのようです。
とエラーが出る。
ODBCを使う分には問題ないようだが、 psqlodbc_09_06_0300以降とVS2015は相性が悪いようなので、 psqlodbc_09_06_0200以前のドライバを使った方が良いようだ。 ※あくまで開発環境のドライバで、実際に入れる端末は最新版で問題はない。 |
加筆20090902
修正20101209
加筆20140331