VB6 ADO BeginTransのエラー


m  2009-03-16 17:58:55  No: 141698  IP: 192.*.*.*

環境は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

編集 削除
もげ  2009-03-17 17:54:50  No: 141699  IP: 192.*.*.*

×教授
○教示


システムの全体像やSQL文の内容がよくわかりませんが、
その処理のほかに同じセッションでトランザクション処理を同時に行っている可能性や、
エラートラップやエラー時のRollbackTransメソッドの記述が見当たらないことから、
BeginTransの後に何らかのエラーでCommitされていないところに、
新たにBeginTransを行なって結果的にネストと同じ状態になっている
という可能性も考えられます。
一つ一つ要因をつぶしていく必要があるかもしれませんね。

編集 削除