通过 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'”
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值