爱心技术专栏专题

通过OLEDB连接MSSQLServer时出现乱码的解决方法

摘录:爱心 来源:爱心 加入时间:2007年04月30日
摘要:
通过OLEDB连接MSSQLServer时出现乱码的解决方法


   
当使用OLE DB方式与MS SQL Server连接时,如果数据库的代码页与本地的不同,当进行查询时字符的返回值就会变成 ? 或是乱码, 微软的网站上说这是一个BUG, 并且描述如下:
When you try to retrieve character data from a column with d…

通过OLEDB连接MSSQLServer时出现乱码的解决方法

站点:爱心种子小博士 关键字:通过OLEDB连接MSSQLServ

通过OLE DB连接MSSQL Server时出现乱码的解决方法


   
当使用OLE DB方式与MS SQL Server连接时,如果数据库的代码页与本地的不同,当进行查询时字符的返回值就会变成 ? 或是乱码, 微软的网站上说这是一个BUG, 并且描述如下:
When you try to retrieve character data from a column with different collation than the client code page in Microsoft SQL OLE DB Provider (SQLOLEDB), you may receive question marks (??) instead of correct data when all the following conditions are true:
?A connection is made against a Microsoft SQL Server 2000 database.
?SSPROP_INIT_AUTOTRANSLATE is set to TRUE. SSPROP_INIT_AUTOTRANSLATE is part of the provider-specific DBPROPSET_SQLSERVERDBINIT property set.
?A column is bound to an OLEDB DBTYPE_WCHAR data type in the bindings structure.

我的解决方法是关掉 自动字符转换. 例子如下:(PowerBuilder 中)
SQLCA.DBMS = OLE DB
SQLCA.LogID = sa
SQLCA.LogPass =
SQLCA.DBParm = “PROVIDER=SQLOLEDB, DataSource=my-server, CommitOnDisconnect=no, ProviderString=Database=mydb, AutoTranslate=no”

转载:转载请保留本信息,本文来自http://www.51dibs.com/lp07/la/a2/l_a_6e382ff198d64fcc.html