次のコードを実行すると、
「BeginTransaction にはオープン接続が必要です。接続の現在の状態はオープン、実行中です」
例外。
using (var con = new IBM.Data.DB2.DB2Connection(
"Server=localhost;Database=SAMPLE;UID=***;PWD=***;"))
{
con.Open();
var c = con.CreateCommand();
c.CommandText = "select * from DB2TEST";
using (var r = c.ExecuteReader())
{
r.Read();
con.BeginTransaction();// The exception is thrown here!!!
}
}
Begin トランザクションをコード内の前の時点に移動すると機能することはわかっていますが、それではうまくいきません。非常に大きなリーダーを繰り返し処理し、必要に応じてトランザクションを開いたり閉じたりする必要があります。
ExecuteResultSet を試しましたが、同じ動作になりました。