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


こたろう  2007-07-10 21:33:58  No: 27004

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

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

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

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

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

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


HOta  2007-07-11 02:14:31  No: 27005

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


こたろう  2007-07-12 02:46:44  No: 27006

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

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

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

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


HOta  2007-07-12 05:07:21  No: 27007

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


こはく  2007-07-12 18:20:12  No: 27008

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

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


こたろう  2007-07-13 03:09:52  No: 27009

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加