- - PR -
OracleDataReaderでの不具合
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-23 01:42
お世話になっております。
現在OracleDataReaderを用いてデータ取得を行っているのですが、取得するデータによってうまくいかない場合が発生します。 現象としては cmd.CommandText = SQL文 ←このSQL文をオブジェクトブラウザから流しても問題なし dr = cmd.ExecuteReader ←データは取得できている Do While dr.Read() ←この時点でdrにアクセスするとdr.Read()が強制的にFalseになりループに入らない。(どうやらdrが強制的にdisposeされている?) といった状況です。 また、SQL文によってはうまくいくことも確認しております。 どなたか同じ現象が発生した方、また、思い当たることがある方はご助言いただけますでしょうか。よろしくお願いいたします。 | ||||||||
|
投稿日時: 2005-12-23 03:37
検証を重ねたところ、どうやら抽出データが1件の時のみ発生する現象とわかりました。
| ||||||||
|
投稿日時: 2005-12-23 08:45
Disposed を見た上での話ですか?
ならば、その SQL 文をここに出せば解決しやすくなるでしょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-23 10:16
デバッガでウォッチしてるとOracleDataReader.Read()が実行されて 次の行に行っちゃうんじゃないかな。
で、1件のときはもうデータがない、とか。 複数行のときは最初の1行が取得できない、とか。 | ||||||||
|
投稿日時: 2005-12-23 14:37
それだ! 実行するたびにオブジェクトの状態が変更されるメソッドをウォッチするときは要注意ですよね。何度嵌った事か…。 ウォッチで実行したものも「現場で実行される」。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2005-12-23 17:42
デジャヴュではなかったようですね。(^^;)
IDataReaderのread()メソッドの実装について _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2005-12-23 17:53
誰もが通る道、か。
いやいや、決め付けてはいかんですよ。 これはきっとOracleDataReaderの重大なバグの発見に違いないよ、うん。 | ||||||||
|
投稿日時: 2005-12-26 00:14
申し訳ございません。仰るとおりのウォッチ式の問題でした。。。
このような事でお騒がせして申し訳ありませんでした。そして皆様の深い経験にただ感服するばかりです。本当にありがとうございました。 |