Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
VB2019 バージョン情報
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30949#CommentId86138
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2024/2/28 11:35:55
おっとすれ違い。
今回、内部スタックトレースは追っても仕方ないので無視するとして:
> MsgBox(ex.Message) では、「クローズ済オブジェクトの処理が無効です」と表示されました。
OracleDataReader が閉じられた状態で、その中身を読みだそうとしているように見えますね。
DataTable に対して、table1.Load(dr) などを呼び出していたりはしないでしょうか。
こうした動作によって、IDataReader が閉じられてしまう可能性があります。
> Do While dr.Read()
あるいはデバッガ―上で、dr.Read() をウォッチ ペインやイミディエイト ペインで読み込ませていないでしょうか。
Read メソッドを呼ぶと現在行が進んでしまうので、ループ内で意図せず呼ばれると、副作用を引き起こします。
もしくはちょっと特殊ですが、Oracle の LONG型(可変長文字列型) や LONG RAW 型(可変長バイナリ型)を含むテーブルを
参照しようとした際、二回以上読みだそうとしたときに閉じられてしまう不具合があったかと思います。
(Oracle 側のパッチで修正されていた気がしますがうろ覚え)