1

IDataReaderデータを から に変換するコードがIronPython.Runtime.ListありPythonTuplesます。この同じコードが、いくつかの異なる種類のデータベース接続 (Access、Oracle、および MySql を含む) に使用されます。

Oracle のデータ型では、カーソルに精度の高い値が含まれているOracleDecimal場合に呼び出すと、オーバーフローが発生します。dataReader.GetValues()この問題は十分に文書化されており、解決策には常に で特定のメソッドを使用することが含まれますOracleDataAdapterIDataReader私はインターフェースしか持っていません。

私のコードを特にODP.NETにバインドせずに、この問題を回避する方法はありますか? プロバイダーに依存しない方法でこのデータを取得する何らかの方法があるはずです。

4

2 に答える 2

0

私が知っている唯一のプロバイダーにとらわれない方法は、selectステートメントの値を丸めることです。通常、小数点以下15桁に丸めるとうまくいくことがわかりました。

于 2010-11-09T17:09:29.133 に答える
0

それはまさにあなたが探しているものではないかもしれませんが、System.Data.Common.DbDataReaderクラスにはGetProviderSpecificValuesあなたが望むことをする機能があります

于 2010-11-09T16:05:34.843 に答える