免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6629 | 回复: 6
打印 上一主题 下一主题

请教客户端查询的字符集问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-20 15:43 |只看该作者 |倒序浏览
Hi, all!
我在客户端安装client sdk后,
查询时包含中文,
报错
[Informix][Informix ODBC Driver]Unspecified System Error =  -21005.
是不是需要设置setnet32中的client_locale和db_locale?
一般如何设置?
请问服务器端数据库的db_locale如何查看呢?
客户端client_locale可选的字符集如何查看呢?
Thanks!

论坛徽章:
0
2 [报告]
发表于 2006-04-20 16:38 |只看该作者

回复 1楼 ikb 的帖子

client端和server端的CLIENT_LOCALE和DB_LOCALE要设置为中文字符集。

一般是zh_cn.gb或zh_cn.GB18030-2000。

如果你采用直连的方式,不用设置此两个参数。

如果是ODBC方式,这两个参数都要设置。

论坛徽章:
0
3 [报告]
发表于 2006-04-20 16:46 |只看该作者

回复 2楼 ahkai 的帖子

unix 使用glfiles -lc可以查看 输出的文件lcX.txt

windows: C:\Program Files\IBM\Informix\Client-SDK\gls\lc11\zh_cn

可以使用server端的中文设置,不用自己设置。

如果server端是中文环境,那数据库创建时也应该使用中文的code-set.

论坛徽章:
0
4 [报告]
发表于 2006-04-20 17:44 |只看该作者
谢谢!
请问服务器端数据库当前使用的字符集如何查看呢?

论坛徽章:
0
5 [报告]
发表于 2006-04-21 12:41 |只看该作者

回复 4楼 ikb 的帖子

dbaccess选择sysmaster数据库

select * from sysdbslocale;

论坛徽章:
0
6 [报告]
发表于 2006-04-24 14:24 |只看该作者
谢谢!
我的情况是,服务器端数据库的字符集为 en_US.819
客户端安装了 client sdk 2.90
然后通过 informix odbc driver 连接
在 odbc driver setup 的 Environment 中
Client Locale 和 Database Locale 默认 en_US.CP1252
Test Connection 成功,但查询不能使用中文字符。
将 Client Locale 改为 zh_cn.gb 或者 zh_cn.GB18030-2000,
Database Locale 改为 en_US.819,
则 Test Connection 失败,提示信息
[Informix][Informix ODBC Driver][Informix]Error opening required code-set conversion object file.
但是 C:\Program Files\Informix\Client-SDK\gls\lc11\zh_cn 路径下确实存在 1570.lco 和 e00d.lco 文件。

请问这种情况如何解决?才能实现登录,并且可以使用汉字匹配查询。

论坛徽章:
0
7 [报告]
发表于 2006-04-25 09:21 |只看该作者

回复 6楼 ikb 的帖子

将数据库server的DB_LOCALE和CLIENT_LOCALE设置为中文。
重启数据库,在这个环境下重新创建数据库。(之前的数据库在这个环境下将不能访问了,因为字符集不一样)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP