CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

为什么用VB6把汉字插入到SQLSERVER中时老是出错?

楼主masterkey()2000-06-16 13:25:00 在 VB / 基础类 提问

      我用ADO、RDO将汉字插入SQLSERVER表格中时老是出现错误,每个汉字都以一个问号?,而同一个ODBC连接用VFP做同样的插入汉字时则不会出现。  
        我重装了系统后就装VB,刚开始一段时间不会出现此问题,但随着其他软件的加入就毛病出来了,我该怎么办?   而且用strconv做转换后也只有部分汉字可以正确插入。请各位高手解答,不胜感激! 问题点数:50、回复次数:8Top

1 楼liyang()回复于 2000-06-22 09:42:00 得分 50

首先,你的Sql   Server版本。6.5   SP4   还是   7  
  1.注意你的Sql   Servre中的语言集,最好装成936(中文),缺省好像是西欧语言集  
  如果不是936,嘿嘿,你比较悲惨,但不是没有办法  
  一、在Enterprise   Manager中,右键点Sql   Server,选属性,再找第二个tab(名字忘了),找到ansi->oem,如果打钩就去掉,如果没打钩就打钩。  
  二、如果你使用ODBC连,再查找ODBC数据源中的相应DSN,找属性,看ansi->oem.  
  三、你在vb中使用sql语句直接操作,还是使用addnew、update等ado方法,直接使用sql语言好像可以,这关系到sql   server中打开数据源的方式,是直接打开,还是使用cursor_openTop

2 楼masterkey()回复于 2000-06-22 10:16:00 得分 0

    我是用SQL   7(Language:English,   Code   Page:CP   1252),我想服务器端和DSN   连接应该是没有问题的,因为同一个DSN连接,我用VFP做插入和修改时都不会出现错误(  
          sqlh=sqlconnect('RSM','sa','')  
          mm=sqle(sqlh,'insert   into   ......')   都可正确处理汉字。  
      VB6的DAO3.5时也能正确处理汉字(但3。6就不行了),第一次执行ADO的ADDNEW,UPDATE   时也能正确处理,但第二次就错了,之后也不行(全部把表中的资料删除后第一次可以,之后不行)。   用ADO、RDO的SQL语句操作时,都不能正确处理。我的头都大了,到微软技术支持,他们也没能放出个“响”屁!  
          帮我这个忙,我给你们200分都行!Top

3 楼xguoz()回复于 2000-06-22 21:14:00 得分 0

试试在按照VB或按照完毕后,在VC安装选项当中将UNICODE相关内容选中(藏得比较深,还要找找)。另外,最好使用VS   6   SP3版本来加强部分功能。应该没问题。Top

4 楼Limu(中國人)回复于 2000-06-23 09:37:00 得分 0

I   think   you   must   reinstall   your   operating   system   first.and   then   SQL   Server   7.0,and   then   VB   6.0.If   your   operating   system   is   traditional   windows(Big5   Code)   then   you   must   install   SQL   Server   7.0   for   traditional   windows.Top

5 楼masterkey()回复于 2000-06-30 10:53:00 得分 0

        前天我重装了一个系统:WINDOWS2000   Advance   Server,然后装OFFICE2000、Visual   Studio6,   最后是Visual   Studio   6的SP3,   可我现在还是不行啊!   现在是ADO的ADDNEW可以,其他的都不行!   救救我吧!Top

6 楼liyang()回复于 2000-06-30 11:01:00 得分 0

你的系统和我的一模一样,可能就是字符集不一样。我的可以。Top

7 楼gx_sunny()回复于 2000-06-30 12:26:00 得分 0

liyang说的对,我以前也遇见过相同的问题,就是字符集的问题,SQL   SERVER要在安装后再改字符集有点麻烦,我建议重装Top

8 楼chenxixian()回复于 2000-08-20 15:17:00 得分 0

我不久就遇到这个问题,到“问专家”(http://www4.netease.com/~askpro/index.html)处觅得答案!  
   
  其中   罗   波   的   意   见   和   Navy_Chen的   意   见   我试过,可行!  
   
  从SQLServer数据库取来的数据中汉字信息全部是乱码  
  所属类别:    
   
  Visual   Basic-数据库  
   
  编号:QA002096  
  建立日期:   1999年11月25日   最后修改日期:2000年5月14日    
   
    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)就   不   出   先   乱   码   。   如   果   安   装   其   他   新   版   软   件   再   看   他   出   现   什   么   问   题   。    
   
  此问题由Richard等回答。    
   
  Top

相关问题

  • 填写汉字为什么出错?
  • 查找字母和汉字就出错!!!
  • 请问这个语句出错在什么地方?vb+sqlserver
  • VB程序出错。
  • vb编译出错
  • VB打包安装出错
  • 输出ORACLE的字符字段值(汉字)出错。
  • C#读文本文件中的汉字出错!怎么办
  • 问一个关于TXMLDocument读取到汉字出错的问题
  • applet连接sqlserver出错?

关键词

  • vb6
  • win98
  • 汉字
  • vb
  • sqlserver
  • 字符集
  • ado
  • sql
  • 语言
  • 数据

得分解答快速导航

  • 帖主:masterkey
  • liyang

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo