CentOS ODBC接続方法

============================================================
CentOS ODBC接続方法
============================================================
サーバ(192.168.1.1)      PostgreSQL  
クライアント(192.168.1.2) ODBCで、USER hogeにて接続

                                                                                                                      • -
サーバ PostgreSQL
                                                                                                                      • -
$ rpm -qa | grep postgresql-odbc postgresql-odbc-7.3-8.RHEL4.1 /var/lib/pgsql/data/pg_hba.conf host all all 192.168.1.2 255.255.255.255 trust クライアントから接続可能なように許可をあたえておく
                                                                                                                      • -
クライアント側(ODBC接続側)調査
                                                                                                                      • -
# rpm -qa | grep ODBC unixODBC-2.2.11-1.RHEL4.1 unixODBC-devel-2.2.11-1.RHEL4.1 # locate odbc | grep psql | grep so ................. /usr/lib64/libodbcpsql.so .................
                                                                                                                      • -
クライアント ODBC設定例
                                                                                                                      • -
$ vi /home/hoge/.odbc.ini [ODBC Data Sources] test_20070604 = Posrgre SQL ODBC Data Source 20070604 [test_20070604] ;;;Driver = /usr/lib/libodbcpsql.so Driver = /usr/lib64/libodbcpsql.so ;;;64版は、ドライバーの格納場所が異なる為、注意する Servername = 192.168.1.1 (postgresql server ip) ;Port = 5432 Database = template1 (接続DB) ;Protocol = 6.4 ;ReadOnly = 0 ConnSettings = set client_encoding to UNICODE $ isql test_20070604 postgres
                                                                                                                        • -
PostgreSQL => 文字コードを考慮し、きちんと設定しないと、selectできない
                                                                                                                        • -
# set client_encoding to euc_jp; # SELECT china_string from t_china_data ; ERROR: character 0xe5bca0 of encoding "UNICODE" has no equivalent in "EUC_JP" (UNICODEで格納された中国語の文字を閲覧しようとした) # set client_encoding to UNICODE; # SELECT china_string from t_china_data ; (問題なし)
                                                                                                                      • -
[ダメな例] 上記より、間違って「ConnSettings」をすると、selectがこけるので注意する
                                                                                                                      • -
$ vi /home/hoge/.odbc.ini ConnSettings = set client_encoding to EUC_JP