VB 通过ADODC控件访问局域网服务器上的Sysbase adaptive server anywhere 8数据库写入时出一乱码??? 急

lotic 2006-05-11 08:25:22
有关文章,试了,都不行,不知还有什么招????


从SQLServer数据库取来的数据中汉字信息全部是乱码



编号:QA002096
建立日期: 1999年11月25日 最后修改日期:2002年1月29日
所属类别:

Visual Basic - 数据库

wxh:
操作系统:win98
工具:vb6.0
问题:我在vb中利用ado控件访问多台远程服务器SQLServer数据库,发现从其中个别服务器取来的数据中汉字信息全部是乱码,不知原因何在?是vb的问题还是SQLServer的问题?请帮忙解决,谢谢!

回答:

Richard的意见:
我以前也碰到过,是由于各SQL Server 安装时选择的语言不一致引起 !请重新 Setup 试一试!
JunW的意见:
应该是SQL Server的版本不兼容引起的,我曾经试过,服务器用6.5,后来装了office2000后,读出数据全乱了,我的解决方法是将Sql 6.5的客户端在客户机上Setup一下或将6.5版本的sqlsvr32.dll 拷到客户机上windos\system目录下覆盖原有的文件即可。
Karter的意见:
应该是数据传送时屏蔽了高位 ,据说使用VB6 的SP2就没事( 不要SP3 ) ,或者换一下 ODBC 的驱动程序。
Ariel的意见:
根据前提的不同,乱码的出现存在两种情况,
1、SQL SERVER V6.5
正象Karter所说,与VB的SP有关。SQL SERVER与应用程序中有个接口,如果你的VB用的ADO是V2,则它的ODBC接口与SQL方相同,但如果你装了SP3,则ADO升为V2.1,与SQL的接口驱动程序想比,版本更高,导致VB与SQL处理不同,从而产生乱码。解决方法:或者你在CLIENT方装更新版本的ODBC,或者升级SQL SERVER。还有一个方法可以试试:利用OFFICE97光盘中的有关文件,在该CD上的VALUEPACK目录下,将ODBC*.DLL(应有4个)复制到WINDOWS的SYSTEM目录下,即可。但我只做初步试验,不敢保证一点没有其它问题会发生。
2、SQL SERVER V7.0
在SQL 7中有一项自动翻译选项,它无法识别类似中文的双字节信息(不包括UNICODE字符),因此必须将该选项DISABLE,除非SQL SERVER在安装时即已选择中文字符集。
杨威利的意见:
我在WINDOWS 3.1下读取库时也遇到过这种情况,原因为SQL服务器客户端的字符集被设为ISO_1而非通常的CP850可以检查一下该配置。
罗波的意见:
ADO采用如下联接方式:
cn.Open "Provider = SQLOLEDB; Data Source= " & SQLServerName & "; Auto Translate=false; User Id=" & SQLUserName & ";Password=" & SQLUserPass & ";"
注意其中: Auto Translate=false; 你不妨试一试。
Navy_Chen的意见:
本人曾碰到类似情况,vb5 使用SQL7.0的ODBC驱动,连接SQL6.5 数据库。若将 Perform translation for charcter data (执行字符串转换)属性设为 Enabled (或选中),则出现中文变为乱码情况。在odbc中 设置该属性即可。
lg的意见:
我想上面的人已经解释了很多,我比较认同的是sp问题和office2000的问题。因为我装Win98第一版和vb6(无sp)就不出先乱码。如果安装其他新版软件再看他出现什么问题。
snowbird的意见:
我在遇到此类问题的时候,也是用“罗波”方法解决的,但如果你是用ODBC的方式连接的,Auto Translate=false;应改为Auto Translate=no;

ren的意见:
建ODBC数据源时把字符转换去掉。

此问题由Richard等回答。

...全文
172 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lotic 2006-05-12
  • 打赏
  • 举报
回复
真的没法解决吗?急死我了.快回复吧.万分的感谢.

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧