【高分求解释】SQLOLEDB Auto Translate

jeremyyang824 2013-02-05 01:08:27
大家好:
我们公司实施了四班ERP,该产品数据库排序集为Latin1_General_BIN,且数据库中字符串类型都用的varchar,因此存入的数据在界面上虽能显示,但用SQL管理工具查询时显示的都是诸如Öгµ这类乱码。
我们在采用ADO.NET做ERP相关的二次开发时,读取数据都必须采用“Provider=SQLOLEDB.1;Auto Translate=False....”的链接方式,这样系统读出来的数据是正常的中文。

我对于这里的Auto Translate=False的原理不是很理解。。。。

此外,由于无法用SQL语句查出中文,因此,维护困难、无法通过SQL语句检索中文,还有如果从ERP数据库往另一个数据库导入数据时也无法用存储过程直接导,必须通过SQLOLEDB的程序中转一下才行。请问大家,有什么好的解决方案解决这类问题么?
...全文
347 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeremyyang824 2013-02-05
  • 打赏
  • 举报
回复
如果是这样的话,SQL Server有没有提供什么方法能以指定的代码页来进行字符解释的呢?
jeremyyang824 2013-02-05
  • 打赏
  • 举报
回复
引用 1 楼 Vidor 的回复:
Auto Translate=False 禁止服务器端自动代码页转换,原原本本传binary stream过来,然后用客户端的代码页解释字符。 搜索中文可以用binary搜索,客户端将中文条件转换成binary: select * from tb where colname=0xabcd 导数据就只能这样没别的办法了,指定中文排序规则同样涉及代码页自动转换问题。
我理解一下,是不是这个意思? 如果ERP数据库的排序集是Latin1_General_BIN,我查了对应的代码页是1252;而客户端的代码页是936。 那么一般情况下,我们写数据进去的时候用的客户端代码页936,查数据的时候服务端自动用代码页1252进行了转换,因此显示出来的是乱码。 如果开启了Auto Translate=False,那么我们写数据用的客户端代码页936,查数据的时候并没有用服务端代码页1252来转换,而是用本地客户端的代码页936来解析,因此显示出的是正常的中文。
jeremyyang824 2013-02-05
  • 打赏
  • 举报
回复
ERP产品数据库,改不了的。。。。
Vidor 2013-02-05
  • 打赏
  • 举报
回复
服务器端的修改: 所有包含中文字段的表,添加chs_column,然后用Latin1_Column的binary stream更新:
alter table tb add chs_column varchar(max) collate Chinese_PRC_CI_AS NULL
go
update tb set chs_column = convert(varbinary(max), Latin1_Column)
检查数据无误后再删除Latin1_Column,整理碎片是另外一个话题了。 如果想使用unicode,在上面的基础上再转为nvarchar。
-Tracy-McGrady- 2013-02-05
  • 打赏
  • 举报
回复
帮忙顶顶,新年快乐
昵称被占用了 2013-02-05
  • 打赏
  • 举报
回复
Auto Translate一楼解释够清楚的了 对于维护问题,建议是最好进行数据库重建,即 1、建立一个中文排序规则的数据库 2、表中字符字段修改为nvarchar(...)类型 3、从原库倒入数据,这里需要试各种方法,要求不乱码,肯呢光的方法包括:直接导、导出到txt文件再导入、bcp导出后bcp导入、导出到access再导入等等 4、修改程序的连接方法和查询方法,直接使用中文查询。
Vidor 2013-02-05
  • 打赏
  • 举报
回复
Auto Translate=False 禁止服务器端自动代码页转换,原原本本传binary stream过来,然后用客户端的代码页解释字符。 搜索中文可以用binary搜索,客户端将中文条件转换成binary: select * from tb where colname=0xabcd 导数据就只能这样没别的办法了,指定中文排序规则同样涉及代码页自动转换问题。

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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