Top / .NET備忘録 / 10.oo4o / 03.OraDynaset その(2)

OracleDataReader クラスから実装するとき、MoveNext メソッドだけ使用していれば問題ないのですが、MovePreviouse メソッドを使っていたり、RecordCount プロパティを参照したり、Find系のメソッドを使っていたりすると、読み込んだデータを、キャッシュしておく必要が出てきます。

Move 系のメソッドから、共通で呼び出す処理を作成し、カレントレコードが、現在読み込んでいる DataTable のレコードの範囲外だったら OracleDataReader クラスの Read メソッドを実行して、目的の行(カレント行 + 1)まで読み込み、DataTable に格納します。

目的の行をカレント行 + 1 にするのは、さっさと次の行を読んで、OracleDataReader を Dispose したいからです。

エントリ等のプログラムでは、マスタチェックで1件読んで、そこで終わりという場合が多いので、Dispose のタイミングが早くなります。

データ格納用 DataTable を作成するときは、GetSchemaTable を使って、スキーマテーブルを取得すると、フィールドの型を知ることができます。




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-03-08 (金) 02:32:59 (1571d)