關於 ODBC 配置原理
我講下ODBC參數關係
1.原理,ODBC通過開放的特定連接埠與資料庫溝通.既然是連接埠,必須服務端和用戶端都要有!
2.詳例: 環境: 服務端:Redhat Linux +Informix 11.5(非se版)<硬體4核單CPU> ,用戶端: Windows XP
Linux: 第一條件: shm(共用記憶體方式)必須先online 起來,然後再添加ODBC相關參數,再重起伺服器,看online起來沒有,
<注意:在添加ODBC 參數前,記得備份相關設定檔>
配置如下:
</u1/informix/etc> uname -a
Linux tiptop 2.6.18-92.el5xen #1 SMP Tue Apr 29 13:45:57 EDT 2008 i686 i686 i386
</u1/informix/etc> cat onconfig.top|grep 01
DBSERVERNAME on_shm01
DBSERVERALIASES on_tcp01 # ODBC
</u1/informix/etc> cat onconfig.top|grep 150
Sqlclub學習社區
NETTYPE ipcshm,2,150,CPU
NETTYPE soctcp,1,150,NET #ODBC
</u1/informix/etc> cat sqlhosts|grep tiptop
on_shm01 onipcshm tiptop on_shm01_srv
on_tcp01 onsoctcp tiptop on_tcp01_srv #ODBC
</u1/informix/etc> cat /etc/services|grep tcp01
on_tcp01_srv 9902/tcp #ODBC
</u1/informix/etc> netstat -na|grep 9902
tcp 0 0 192.168.1.100:9902 0.0.0.0:* LISTEN
#上面檢查伺服器ODBC服務是否起來,如果是如下狀態,必須修改/etc/hosts
copyright Sqlclub
tcp 0 0 172.0.0.1:9902 0.0.0.0:* LISTEN
修改:
</etc>cat hosts|grep tiptop
127.0.0.1 tiptop localhost.localdomain localhost
到:
</etc>cat hosts|grep tiptop
127.0.0.1 localhost.localdomain localhost
192.168.1.100 tiptop
不明白原因..你看在sqlhost檔案裡是有引用電腦名'tiptop' 所以必須在linux上讓'tiptop'指向真實IP,才能對外服務嘛!
如果</u1/informix/etc> netstat -na|grep 9902 都沒有9902服務,表示informix ODBC服務沒起來.
可以用如:isql -s ds1@on_tcp01 或 dbaccess ds1@on_tcp01 測試Informix 網路服務起來沒!
Windows XP: 如果你用的是informix 11.5UC3 匹配的ODBC組件版本:3.50.TC3
C:/WINDOWS/system32/drivers/etc>type services|find "9902" Sqlclub學習社區
on_tcp01_srv 9902/tcp
安裝後配置Setnet32
Environment:
CLIENT_LOCALE=zh_TW.big5
DB_LOCALE=zh_TW.big5
DBLANG=zh_TW.big5
INFORMIXDIR=C:/Program Files/IBM/Informix/Client-SDK/
Server Information:
IBM Informix Server on_tcp01
HostName 192.168.1.100
Protocolname: onsoctcp
Service Name: on_tcp01_srv
Host Information
Current Host: 192.168.1.100
UserName: informix
Password Option: Paaword
Pssword: XXX
然後重起電腦!
要使用或測試的話,就必須去控制台的資料來源ODBC,添加一個對象了!
使用者DSN:
添加 Informix ODBC
General:
Data Source Name: tiptoperp #起個名字
Connection:
Server Name: on_tcp01
Host Name: 192.168.1.100
Service: on_tcp01_srv
Protocol: onsoctcp
Database Name: demo7
User Id: Informix
Paaword: xxxxx Sqlclub.cn
這時不要點Apply&Test Connection #即是點,也出錯的!
繼續配置:
Enveronment:
Client Locale zh_TW.big5
Database Locale zh_TW.big5
Use Server Database Locale [] 可打可不打,打了的話,Database Locale 變 zh_TW.57352
Translation Library C:/Program Files/IBM/Informix/Client-SDK/bin/igo4n304.dll
# Library 一定要配置,它用來解釋ODBC命令的
這時可以回到
Connection:
點Apply&Test Connection
如果出現:
Test connection was successful
恭喜你,成功了!
本篇文章來源於 SQL學習社區 原文連結:http://www.sqlclub.cn/JiChuGuanLi/2009-04/1990.htm