2008.01.30 Wednesday
PostgreSQLのODBCドライバ・手動インストール
09/10/25追記:
ここのバイナリは32bit版となります。
公式サイトにODBCインストーラが頒布されるようになっています。
http://www.postgresql.org/ftp/odbc/versions/msi/
これらを利用し、Windows7含め、64bit環境でも動きますのでサイレントモードでインストールしたい場合は以下のコマンドでインストールしたほうがいいかもしれません。
msiexec /i psqlodbc.msi /quiet
通常はPostgreSQL(postgresql-8.x.msi等に)に付属していますので、インストーラからドライバのみを選択->インストールできます。
アプリケーションの機能としてPostgreSQLのODBCをインストールする必要があった為、手動でのインストールの方法について少し調べてみました
手順とては、頒布されているインストーラ(postgresql-8.2-ja.msi等)からDLLを取り出し、適当なところへ保存してレジストリ項目を追加することによりODBCドライバが利用できるようになります
msi内のDLLは
psqlodbc35w.dll ......PostgreSQL Unicode
psqlodbc30a.dll........PostgreSQL ANSI用
※psqlodbc35w.dllは動的にlibpq.dllをインポートしているらしく、tdump(ldd)で調べてみると必要なファイルは以下のような感じでした
ちなみに接続文字列は(192.168.1.10:5432 の場合)
SSLに対応させるには接続文字列に「CA=r」を追加します
最初"odbcconf"や"regsvr32"で登録するのかと思っていたのですが、レジストリを操作するだけでOKです、Vistaでやる場合は該当レジストリ位置へのアクセスは管理者権限が必要です
PostgreSQL8.2系のものです
msi形式で頒布されているので、postgresql-8.2-ja.msiを二次配布しmsiexec を利用することも出来ると思います
参考の為にPostgreSQL ODBCのインストーラとソース(Delphi3)をおいておきます↓
8.3系download....odbc_pg_inst_83.exe(src)....5M
8.2系download....postgres_odbc_inst.zip....3.4Mbyte
注意:入っている「odbc_pg_inst.exe」を実行すると何も聞かないで必要なファイルをインストールします(確認ダイアログ等も一切出ません)。心配な方は中のソースを参照ください
※8.3系の物はpostgresql-8.3.msiに梱包されている全てのDLLが入っています
08/10/25追記:
・インストーラのDLLをpostgresql-8.3.msiのものにしました
ここのバイナリは32bit版となります。
公式サイトにODBCインストーラが頒布されるようになっています。
http://www.postgresql.org/ftp/odbc/versions/msi/
これらを利用し、Windows7含め、64bit環境でも動きますのでサイレントモードでインストールしたい場合は以下のコマンドでインストールしたほうがいいかもしれません。
msiexec /i psqlodbc.msi /quiet
通常はPostgreSQL(postgresql-8.x.msi等に)に付属していますので、インストーラからドライバのみを選択->インストールできます。アプリケーションの機能としてPostgreSQLのODBCをインストールする必要があった為、手動でのインストールの方法について少し調べてみました
手順とては、頒布されているインストーラ(postgresql-8.2-ja.msi等)からDLLを取り出し、適当なところへ保存してレジストリ項目を追加することによりODBCドライバが利用できるようになります
msi内のDLLは
psqlodbc30a.dll........PostgreSQL ANSI用
※psqlodbc35w.dllは動的にlibpq.dllをインポートしているらしく、tdump(ldd)で調べてみると必要なファイルは以下のような感じでした
psqlodbc35w.dll ......PostgreSQL Unicode
|(libpq.dll)
libpq.dll (↓)
|comerr32.dll (-)
|libeay32.dll (-)
libintl-2.dll (libiconv-2.dll)
|krb5_32.dll (comerr32.dll)
|ssleay32.dll (libeasy32.dll)
libiconv-2.dll (-)
※()内は関連インポートファイル
Setup項目はODBC管理のセットアップ画面作成に用いられるようです
[HKEY_LOCAL_MACHINE¥SOFTWARE¥ODBC¥ODBCINST.INI¥PostgreSQL Unicode]
"APILevel"="1"
"ConnectFunctions"="YYN"
"Driver"="C:¥¥[ディレクトリ]¥¥psqlodbc35w.dll" <--ファイルのパス
"DriverODBCVer"="03.00"
"FileUsage"="0"
"Setup"="C:¥¥[ディレクトリ]¥¥psqlodbc35w.dll" <--ファイルのパス
"SQLLevel"="1"
"UsageCount"=dword:00000001
[HKEY_LOCAL_MACHINE¥SOFTWARE¥ODBC¥ODBCINST.INI¥ODBC Drivers]
"PostgreSQL Unicode"="Installed"
ちなみに接続文字列は(192.168.1.10:5432 の場合)
という感じになりますProvider=MSDASQL;DRIVER={PostgreSQL Unicode}; SERVER='192.168.1.10';PORT='5432';UID='hoge';PWD='hoge';connection string lacks some options
※クォートはなし、DATABASEパラメータ必須でした
Provider=MSDASQL;DRIVER={PostgreSQL Unicode};SERVER=192.168.1.10;PORT=5432;UID=postgres;PWD=postgres;DATABASE=postgres
SSLに対応させるには接続文字列に「CA=r」を追加します
最初"odbcconf"や"regsvr32"で登録するのかと思っていたのですが、レジストリを操作するだけでOKです、Vistaでやる場合は該当レジストリ位置へのアクセスは管理者権限が必要です
PostgreSQL8.2系のものです
msi形式で頒布されているので、postgresql-8.2-ja.msiを二次配布しmsiexec を利用することも出来ると思います
参考の為にPostgreSQL ODBCのインストーラとソース(Delphi3)をおいておきます↓
8.3系download....odbc_pg_inst_83.exe(src)....5M
8.2系download....postgres_odbc_inst.zip....3.4Mbyte
注意:入っている「odbc_pg_inst.exe」を実行すると何も聞かないで必要なファイルをインストールします(確認ダイアログ等も一切出ません)。心配な方は中のソースを参照ください
※8.3系の物はpostgresql-8.3.msiに梱包されている全てのDLLが入っています
08/10/25追記:
・インストーラのDLLをpostgresql-8.3.msiのものにしました