ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

ロールバック以降の処理が実行されません

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-10-5 15:20
kimata  新米 居住地: 愛知県  投稿数: 18
mukaさん

情報ありがとうございました。
返答が遅くなり、申し訳ありませんでした。

メインプログラムに定義した変数は、ロールバックしても初期化されないことが確認できました。
ロールバック後に、照会モードに変更する事が出来ないか、色々試してみましたが、やっぱりできませんでした。
ロールバック後に実行されるレコード前処理に、モード変更を入れてみましたが、モードは切り替わりませんでした。

ロールバック時の、モード切替(照会モードに切り替え)は、あきらめます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-10-3 22:24
muka  常連 居住地: 東京都練馬区  投稿数: 69
 ロールバックを実行した場合、変数が初期化されるのは仕様かと思いますよ。
 但し、メインプログラム(#1のプログラム)に定義した変数は初期化されませんので、そこに値を確保することは可能かと思います。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-10-2 11:46
kimata  新米 居住地: 愛知県  投稿数: 18
nullさん

返信ありがとうございます。

イベント実行 キャンセル(C)での動作確認を行ってみました。
キャンセル後に、モード切替は出来たのですが、変数の値の変更も行っているのですが、
元に戻ってしまいました。また、キャンセルでは、サブフォームで複数の変更が行われた
場合には、直前の変更が行われる前の状態に戻ってしまうので、複数回実行しなければな
らず、思うように出来ませんでした。

画面内でのモード切替はやめて、画面を分けるように進めていくようにします。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-10-1 17:45
null  長老   投稿数: 191
すいません、オンラインで確認していました。
リッチクライアントでは確かに出来ないですね。
リッチの場合、どうすれば良いのか判らないです。

処理内容によっては駄目ですが、Rollback の代わりに
イベント実行 キャンセル(C) を使うことは可能でしょうか?

>MAGICで画面を作成する場合、サンプルでは、参照用と更新用を別々に作成していたのですが、
>通常は、別々に作成するものなのでしょうか?
サンプルではそうですが、私の場合はタスク特性の
初期モードに式を使って 1 つにまとめてますね。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-10-1 16:16
kimata  新米 居住地: 愛知県  投稿数: 18
nullさん

返信ありがとうございました。

教えていただいた方法を試して見ましたが、実行する内容に問題があるのか、出来ませんでした。

ロールバック後に、画面のモードを「追加」、もしくは、「更新」モードから「照会」に変更しよ
うとしていますが、出来ずに困っています。
MAGICで画面を作成する場合、サンプルでは、参照用と更新用を別々に作成していたのですが、
通常は、別々に作成するものなのでしょうか?
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-10-1 15:09
null  長老   投稿数: 191
ロールバックを行うとそうなるのは仕方ないことですが、出来ないことも無いです。

・ユーザーイベントに任意のイベントを定義
名前 Foo トリガータイプ N=なし

・ロールバック処理の前にイベント実行を追加
イベント実行 Foo ウエイト No ←重要
Rollback('FALSE'LOG, 1)

・Foo イベントハンドラを作成
E=イベント Foo
ここに Rollback 以降に行いたい処理を書く

ポイントはウエイト No でイベント実行することです。
こうすれば、Rollback 処理が行われた後
(Rollback が書かれているイベントが終わった後)
イベント Foo が実行されるはずです。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2009-10-1 12:04
kimata  新米 居住地: 愛知県  投稿数: 18
リッチクライアントで、データベース関数のロールバック「RollBack('FALSE'LOG,1)」を使用して、
ロールバックを行おうとしているのですが、ロールバックが行われた際、それ以降に記述した処理が
実行されません。

原因が分からず困っています。

対応方法がありましたら、教えてください。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約