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

解决方案 »

  1.   

    看看这样可以不:
    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的資料得到的是亂碼如何解決?
      

  2.   

    从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
      

  3.   

    给vb和sql server打补丁看看
      

  4.   

    http://borland.mblogger.cn/qxj/posts/5309.aspx
      

  5.   

    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