環境はVB6です。
OS:WindowsVista DB:SQLServer2005
ADOを使用してDBを開き保存処理時にトランザクション処理をしています。
そのときに、「このセッションでは、これ以上のトランザクションを開始できません。」とエラーが出てしまいます。
1度だけしか、実行していない(ネストしてない)のに上記エラーが出てしまいます。
WEBで調べてみましたが、ネストしたときは出来ないです。としか書いてません。よって解決できませんでしたので、どなたかお分かりになる方ご教授御願いします。
--- コード ---
Set adoCnn = New ADODB.Connection
adoCnn.ConnectionString = "接続文字列"
adoCnn.Open
adoCnn.CommandTimeout = 1000
adoCnn.BeginTrans
adoCnn.Execute "SQL文"
adoCnn.CommitTrans
adoCnn.Close
Set adoCnn = Nothing
×教授
○教示
システムの全体像やSQL文の内容がよくわかりませんが、
その処理のほかに同じセッションでトランザクション処理を同時に行っている可能性や、
エラートラップやエラー時のRollbackTransメソッドの記述が見当たらないことから、
BeginTransの後に何らかのエラーでCommitされていないところに、
新たにBeginTransを行なって結果的にネストと同じ状態になっている
という可能性も考えられます。
一つ一つ要因をつぶしていく必要があるかもしれませんね。
ツイート | ![]() |