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
或IBMDASQL
OLE 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 關注
- 329 瀏覽
添加回答
舉報