unixODBC概要、設定
unixODBC は Driver に アクセスするための ODBC マネージャである。 ODBC は Client 側にインストールするものである。
<unixODBC → ODBC Driver >→ サーバ という構成により、サーバが SQL Server でも Oracle でも, unixODBC のユーザプログラムに変更を加える必要がないというメリットがある。 ODBC は共通のプロトコルだからだ。
便利な反面、実際に使うとなると 直接アクセスよりめんどうである。必ず ODBC Driver がインストールされている必要があるため、プログラムバイナリを持っていけば、ただちに動くものではない。
また、ODBC マネージャの設定ファイルで、ドライバやアクセス先を指定する必要がある。
たとえば unixODBC のビルド結果、exe フォルダにある ./odbcinst -j を実行すると、下記のごときリストが表示される。
unixODBC 2.3.12
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /home/yuki/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
設定の例は以下のとおりである。
odbcinst.ini
[postgresqlDriver]
Description = General ODBC for PostgreSQL
Driver = /usr/lib64/****.so
Setup = /usr/lib64/****.so
odbc.ini
[TEST_PSQL]
Description = PostgreSQL database 1
Driver = postgresqlDriver
Username = usr
Password = pass
Servername = 127.0.0.1(destination)
Database = dbname
Port = 5432
アクセス先はデータソースとして定義するが、プログラムにおいてはデータソースを dest として指定する。
以下の添付ファイルZIPは ODBC Driver にアクセスするユーザプログラムの例である。ただし odbc-cpp-wrapper (未アップ)
というのを使っている。
odbc-cpp-wrapperを使った sample(未アップ)
Postgre ODBC ドライバについて
LInux の場合、psqlODBC が よく用いられている。ただしこの Driver は ビルドにlibpq を必要とする。たとえば apt で install された場合は libpq も導入される。