kumasysjp

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 も導入される。