--- ** 泣血请教 一个sql server 6.5的中文乱码问题 ** ---

ddzh 2004-09-09 02:50:57
小弟实在是没有办法了,各位大侠救命,时间不等人啊...

具体的情况是这样的:小弟用ado对象往一个老的SQL Server6.5数据库系统某表中插入数据,该表的
一些原来为varchar类型的字段都有中文正常显示(select出来看到的),但是我在VB程序里面直接
赋予这些字段中文值并Update以后,在该6.5数据库上select出来的是?,比如我在程序中rs("way")="管理员1",update后在6.5上select出来是“???1”,请各位大侠多出援手,小弟感激不尽,巨分献上!!

...全文
131 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cqm2099 2004-09-12
up
回复
RUKYO 2004-09-09
Sql Server 6.5补丁:
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q197/1/77.ASP&NoWebContent=1
回复
yijiansong 2004-09-09
打补丁看看
回复
RUKYO 2004-09-09
http://borland.mblogger.cn/qxj/posts/5309.aspx
回复
starsoulxp 2004-09-09
给vb和sql server打补丁看看
回复
TechnoFantasy 2004-09-09
从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数据源时把字符转换去掉。

hai
回复
TechnoFantasy 2004-09-09
看看这样可以不:


http://support.microsoft.com/default.aspx?scid=fh;ZH-TW;sfaq3074#安裝Office%202000%20或Microsoft%20SQL%20Server%207.0%20用戶端程式之後由SQL%20Server6.5所附的MS%20Query存取SQL%20Server%206.5的資料得到的是亂碼如何解決?
回复
相关推荐
发帖

1187

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-09-09 02:50
社区公告
暂无公告