2 回答
TA贡献1712条经验 获得超3个赞
自 Redbook Mike 参考文献发布以来,似乎有一些改进。
在 7.1 DB2 for i .NET Provider Technical Reference(作为 iAccess for Windows 或较新的 ACS Windows 应用程序包的程序员工具包组件的一部分安装)中有几个感兴趣的属性......
iDB2Connection.CharBitDataAsString 属性
获取一个布尔值,该值指示是否应将标记为 CCSID 65535 的字符位数据转换为字符串数据。
iDB2ProviderSettings.CharBitDataCcsid 属性
指定当 CharBitDataAsString 属性设置为 True 时用于转换 iDB2CharBitData 和 iDB2VarCharBitData 类型的 CCSID。当 CharBitDataAsString 设置为 False 时,将忽略此属性。
TA贡献1810条经验 获得超4个赞
此类问题的最佳资源是 IBM Redbook Integrating DB2 Universal Database for iSeries with Microsoft ADO.NET。
在页 151 上,有一个图表将OLE DB 提供程序IBMDA400或IBMDASQLOLE DB 提供程序的功能与IBM.Data.DB2.iSeries.NET 提供程序进行了比较。它说:
Force Translate未由 IBM.Data.DB2.iSeries 提供程序实现。在第 90 页的“iDB2CharBitData 和 iDB2VarCharBitData”中阅读有关处理标记为 CCSID 65535 的字符数据的信息。
还值得注意的是,在 4.5.2 节中列出了您可以放在连接字符串上的属性,没有与您尝试指定的内容相似的内容。这意味着如果您使用 OLE DB 提供程序,而不是 .NET 提供程序,您可能能够对连接字符串执行此转换。
它确实提供了一些技术,您应该能够使用这些技术来清理您的查询并允许您继续使用IBM.Data.DB2.iSeries提供程序(我通常更喜欢)。它们CAST在第 91 页显示了您当前使用的技术,然后在第 93 页显示了可用于iDB2DataReader, 调用方法GetiDB2CharBitData或的替代技术GetiDB2VarCharBitData。还有一个.ToString您可能更喜欢的重载: .ToString(CCSID). 我认为这第二种技术在客户端(在 .NET 提供程序中)执行翻译,而您当前的技术在服务器端(在 iSeries SQL 代码中)执行翻译。
- 2 回答
- 0 关注
- 358 浏览
添加回答
举报
