VB通过ODBC连接Informix数据库中文问题的解决方法
VB程序通过ADODB对象通过ODBC连接informix数据库,返回的数据倒是正常没有乱码,但是sql语句里面不能带中文,例如select * from user_info where user_name=’测试用户’,否则运行时会报“溢出”的错误。试了很久,最后采用如下方式解决问题:
先把数据库drop掉(drop之前可以用dbexport导出备份,以便后面重建);然后在服务端用户的.profile文件中加上:
export DB_LOCALE=zh_CN.gb
export CLIENT_LOCALE=zh_CN.gb
export SERVER_LOCALE=zh_CN.gb
重启informix,重建数据库(可以用dbimport将之前dbexport导出的数据库直接导进去);
将VB程序中的数据库连接串改为:
Const Cst_ConnectionString = "Driver={IBM INFORMIX ODBC DRIVER};Server=online;Database=databasename;Uid=xxxxx;Pwd=xxxxx;DB_LOCALE=zh_CN.57357;CLIENT_LOCALE=zh_CN.57357;"
试过selece、insert、update、delete语句,都可以支持中文了。
我这边的环境是:
服务端:SCO UNIX 5.05,INFORMIX online 7.31 UC5 ;
客户端:WINDOWS XP Professional,VB6.0中文版,informix SDK3.0TC1。