Calender
Sun Mon Tue Wed Thu Fri Sat
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 2018 >>
広告
SEARCH

SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
LINKS
PROFILE
OTHERS
SKYPE
PC: skype.jojo.jp
chat
iPad: iphone.jojo.jp
chat call
THANKS



本日:
昨日:
多言語
広告
 ▼▲ 作業日報 ▼△
    What's under the hood?
<< うちのフレームワーク | main | RAIDの構築・ソフトウェアRAID >>
PostgreSQLのODBCドライバ・手動インストール
09/10/25追記:
 ここのバイナリは32bit版となります。
 公式サイトにODBCインストーラが頒布されるようになっています。
 http://www.postgresql.org/ftp/odbc/versions/msi/
 これらを利用し、Windows7含め、64bit環境でも動きますのでサイレントモードでインストールしたい場合は以下のコマンドでインストールしたほうがいいかもしれません。
 msiexec /i psqlodbc.msi /quiet

PostgreSQL ODBC  通常は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)で調べてみると必要なファイルは以下のような感じでした
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 (-)

※()内は関連インポートファイル



[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"
 Setup項目はODBC管理のセットアップ画面作成に用いられるようです
 ちなみに接続文字列は(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のものにしました
| 開発関連 | 13:12 | comments(0) | trackbacks(0) |









http://blog.jojo.jp/trackback/810363