首先,你的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_open

解决方案 »

  1.   

      我是用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分都行!
      

  2.   

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

  3.   

    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.
      

  4.   

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

  5.   

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

  6.   

    我不久就遇到这个问题,到“问专家”(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等回答。