dポイントプレゼントキャンペーン実施中!

さまざまな過去ログやHPを見てチャレンジしているのですが、うまくいきません。

VB + oracle oo4oで接続しています。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …

↑等を参照して、

OraSession.BeginTrans
OraSession.CommitTrans
OraSession.Rollback

を使ってやっています。

DML文単位ではうまくいっているのですが、

複数のDML文でまとめてコミット、ロールバックできるようにしたいのです。

理想は、フォームopenのイベントタイミングで
OraSession.BeginTrans

フォームcloseのイベントタイミングで
OraSession.Rollback

で、何度も試していますが、うまくいきません。

最終的には、全部うまくいったらコミットのようにしたいのですが、どうしたらよいでしょうか?

A 回答 (4件)

>>VB の rdo によるアクセスでは、専用スタート、コミット、ロールバック命令があります。


>rdoではなくoo4oですので、リンクの方法は該当しないようです。


参考URLの文章が言葉が足りていないようなので、参考URLの補足です^^;;;

この文意は「rdo限定の説明」ではなく、「rdoでも」という意味ですよー


>Oracle は、drop table などの DDL 命令では、自動コミットされます。
どのようにトランザクションをかけようとも、オラクルではDDL命令~(云々)
って捕らえてくださいねー
    • good
    • 0

>コミットまたはロールバックする間に、CREATE VIEW文がありEXECUTE SQLが実行されていました。


それをコメントアウトしたらどうなりますか?

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …
[引用]
VB の rdo によるアクセスでは、専用スタート、コミット、ロールバック命令があります。
Oracle は、drop table などの DDL 命令では、自動コミットされます。

この回答への補足

コメントアウトしたら、うまくいきました。

やはりDDLで確定しているようです。

rdoではなくoo4oですので、リンクの方法は該当しないようです。

補足日時:2005/09/21 16:03
    • good
    • 0

文章訂正^^;;



>SQL文を発行する度にコミットされているは当然なのですが、、、、
SQL文を発行する度に発行していたら、コミットされているは当然なのですが、、、、

この回答への補足

確認しましたら、
INSERTやUPDATEでEXECUTE SQLした後、
コミットまたはロールバックする間に、
CREATE VIEW文があり
EXECUTE SQLが実行されていました。

DDLでまとめて確定されてるということでしょうか。

補足日時:2005/09/20 14:01
    • good
    • 0

>OraSession.BeginTrans


>OraSession.CommitTrans
>OraSession.Rollback
>を使ってやっています。

OraSession.CommitTrans
は、どこで使っていますか?
SQL文を発行する度にコミットされているは当然なのですが、、、、

Rollbackを実行するまえにコミットしてませんよね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!