--- ** 泣血请教 一个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”,请各位大侠多出援手,小弟感激不尽,巨分献上!!

...全文
181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的資料得到的是亂碼如何解決?
Microsoft SQL Server 2000(MSSQL) 注意事项 --------------------------- 1 本地连接服务器请使用界面中“服务器名”文本框中的文本作为服务器名连接服务器(MDAC版本必须为2.6或以上版本)。 默认用户名: sa 默认 密码: admin 2 远程连接请使用“IP,端口”连接,连接前请关闭服务器防火墙!(端口在服务器启动后,可以在状态页看到。) 例如:192.168.0.X,7788 3 数据库转换为相对路径后需要重新启动绿色SQL方可任意移动。 4 数据库文件 (*.mdf + *.ldf)直接复制到 MYDB 目录,重新启动SQL,即可自动附加到SQLSERVER中(数据库名已经存在的不予理会,日志文件、库文件对应不上的不予理会)。 5 数据库只有在绝对路径模式下才可以用软件自带的恢复数据库工具恢复数据库。 2009.02.02 Version 6.4.0.2 ---------------------------------------------- 01. 修改 sqlservr.exe 不支持复杂路径造成启动失败的问题. 02. 增加 启动过程中提示信息. 未解决问题 --------------------------- 1 由于防火墙是拦截TCP/IP协议的,所以无法拦截本机使用 Shared Memory、Named Pipes 协议的连接,例如“(local)\实例名”,其他计算机使用任何协议均可被拦截。 如果想拦截所有连接,可设置SQL只接受 TCP/IP 的连接(设置后只能使用 IP,PORT 的办法连接) 2 由于SQL代理需要注册服务,违背了绿色版宗旨,所以未使用本功能。如需要定时执行东西可以使用管理器的计划任务功能。

1,217

社区成员

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

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