当前位置: 代码迷 >> Sql Server >> 【高分求解释】SQLOLEDB Auto Translate解决办法
  详细解决方案

【高分求解释】SQLOLEDB Auto Translate解决办法

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

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

此外,由于无法用SQL语句查出中文,因此,维护困难、无法通过SQL语句检索中文,还有如果从ERP数据库往另一个数据库导入数据时也无法用存储过程直接导,必须通过SQLOLEDB的程序中转一下才行。请问大家,有什么好的解决方案解决这类问题么?
SQLOLEDB? SQL Auto?Translate 编码集 ADO.NET

------解决方案--------------------------------------------------------
Auto Translate=False
禁止服务器端自动代码页转换,原原本本传binary stream过来,然后用客户端的代码页解释字符。

搜索中文可以用binary搜索,客户端将中文条件转换成binary:
select * from tb where colname=0xabcd

导数据就只能这样没别的办法了,指定中文排序规则同样涉及代码页自动转换问题。
------解决方案--------------------------------------------------------
Auto Translate一楼解释够清楚的了

对于维护问题,建议是最好进行数据库重建,即
1、建立一个中文排序规则的数据库
2、表中字符字段修改为nvarchar(...)类型
3、从原库倒入数据,这里需要试各种方法,要求不乱码,肯呢光的方法包括:直接导、导出到txt文件再导入、bcp导出后bcp导入、导出到access再导入等等
4、修改程序的连接方法和查询方法,直接使用中文查询。




------解决方案--------------------------------------------------------
帮忙顶顶,新年快乐
  相关解决方案