VBでトランザクション
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNGフォーム1、フォーム2を作成し、
フォーム1でBeginTransをしてフォーム2を表示します。(MODAL)
フォーム2でインサートなりアップデートなりした後、
フォーム2ではCommitTransせずにフォーム2をアンロードし
フォーム1でCommitTransということは出来ますでしょうか?
試してみたのですが、Commitする時点でエラーが出てしまうのですが……。
ちなみにVB5でDBはオラクル8i使ってます。
変な仕様ですが、解決法はありますでしょうか……。
0002>1
NGNG2レスで質問して欲しいですぅ
で、フォーム1にそういうプロシジャを用意してるんですか?
0003名無しさん@お腹いっぱい。
NGNGエラーメッセージは?
00043
NGNG出来る出来ないで言うならできる。
やり方も間違ってはいない。
想像ではBeginTrans 後に Rollback or CommitTrans を
どこかで実行しているようなきがする。
そうすると2回目のCommitTransでエラーが出る。
0005名無しさん@お腹いっぱい。
NGNGすいません。もっと良く考えてからスレ立てれば良かったです。
ごめんなさい。
フォーム1でボタン2つ作って、1個はフォーム2呼び出し
もう1個はコミットボタンにしました。
Form LoadでBeginTransを宣言してます。
>>3
コミットボタンをRollBackにして試したところ、
「ロールバック時にアクティブなトランザクションがありません」
と表示されてしまいます。
どうも、フォームをアンロードした時点でコミットされてるよう
なんです……。
00063
NGNGなら自動的にコミットされることはないきがするんだけどなぁ。
4に書いたことをチェックされてみては。
0007名無しさん@お腹いっぱい。
NGNGはい、グローバルです。
ソースもチェックしたのですが、途中でRollback or Commitしてる
所は見当たらないです……。
00083
NGNGhideで終了してない?
hideで終了すると、2回目はForm_Loadが呼ばれないから
BeginTransが行われないよ。
当然BeginTransが行われないとエラーになるよ。
0009名無しさん@お腹いっぱい。
NGNG原因が分かりました。
3さんのおっしゃっていたForm Loadを見ていたら、
フォーム1のForm LoadでBeginTrans
フォーム2のForm LoadでDB再接続
をやってしまっていました……(恥ずぃ)
再接続した後、CommitTransをいきなり宣言すれば、そりゃエラー
出ますよね(^^;
ありがとうございました。こんなケアレスミスを出さないよう精進
しようと思います。
3さん、ありがとうございました。
あと、こんな愚スレを立てて申し訳ありませんでした。
■ このスレッドは過去ログ倉庫に格納されています