ユーザトランザクションは・・・のエラーを回避するには?


こたろう  2007-07-10 12:33:58  No: 27004  IP: 192.*.*.*

いつも参考にさせていただいています。
win2000でdelphi5を使用しています。
(DBは、oracle8iです。)

先日、2年ほど更新されていないプログラムを修正することに
なり、とりあえずコンパイル&動作確認をしました。

しかし、DB更新処理を行うと
「ユーザートランザクションはすでに進行中です」という
メッセージが表示され、処理が中止されてしまいます。
(ApplyUpdatesで更新する場合に、メッセージが出ます。)

BDEの設定などは、特に問題なさそうです。

このメッセージを見たことのある方や、
エラーを回避されたことのある方がいらっしゃいましたら、
どんなことでも構いませんので、教えていただけますか。

よろしくお願いいたします。

編集 削除
HOta  2007-07-10 17:14:31  No: 27005  IP: 192.*.*.*

すでにトランザクションを実行中に、トランザクションを開始しようとしているのではないでしょうか?検査をしてみればわかります。

編集 削除
こたろう  2007-07-11 17:46:44  No: 27006  IP: 192.*.*.*

HOtaさん、早々の書き込み、ありがとうございます。

プログラムに不具合があるのか?とも考えたのですが、
同じ環境のPCが2台あり、1台でこの事象が発生し、
もう一方のPCでは発生せずにDB更新可能になります。
(説明不足で申し訳ありません。)

なので、BDEの設定などを比べて同じにしたにも
関わらず、エラーは解消されませんでした。

あとは何を調べたら良いのか、行き詰まってしまっている状態です・・・。

編集 削除
HOta  2007-07-11 20:07:21  No: 27007  IP: 192.*.*.*

デバッグ用に、いろいろな情報をログにでも出す様にして、調べるしかないでしょう。

編集 削除
こはく  2007-07-12 09:20:12  No: 27008  IP: 192.*.*.*

BDEの設定は比べて同じにした、ということなので、お役にはたてませんが。

BDEの SQLPATHTHRUMODE を 
  SHARED AUTOCOMMIT から SHEARED  NOAUTOCOMMIT に変更
で解消した、という実績があります。

編集 削除
こたろう  2007-07-12 18:09:52  No: 27009  IP: 192.*.*.*

こはくさん。
書き込み、ありがとうございました。
お手上げ状態なので、感謝しております。

SQLPATHTHRUMODEを変更してみましたが、
エラーは解消されませでした。
残念です・・・。

HOtaさんのおっしゃるように、
デバッグで怪しい所を発見するしかないかも
しれません。

編集 削除