サブフォームで重複エラーのトラップ方法
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
gs_kuwabara
投稿数: 229
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
いつもお世話になっております。
リッチクライアントの画面にサブフォームがあり
メモリーで定義のファイルをテーブルで配置してあります。
明細行に商品コードを入力していくだけなのすが、
件数が多い為、入力時に重複チェックを行いたいのです。
テーブル上の重複チェックをしたいのですが、
重複エラーがトラップでしません。
処理終了時に重複エラーが発生します。
同じメモリーテーブルをAPGで作成するとトラップできます。
このAPGに親タスクを設けでサブフォーム化すると
トラップができなくなりました。
サブフォーム化するとエラーはトラップできないのでしょうか?
ご教示頂ければ幸いです。
リッチクライアントの画面にサブフォームがあり
メモリーで定義のファイルをテーブルで配置してあります。
明細行に商品コードを入力していくだけなのすが、
件数が多い為、入力時に重複チェックを行いたいのです。
テーブル上の重複チェックをしたいのですが、
重複エラーがトラップでしません。
処理終了時に重複エラーが発生します。
同じメモリーテーブルをAPGで作成するとトラップできます。
このAPGに親タスクを設けでサブフォーム化すると
トラップができなくなりました。
サブフォーム化するとエラーはトラップできないのでしょうか?
ご教示頂ければ幸いです。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
gs_kuwabaraさん、こんにちは。
トランザクションの設定の問題のように思えます。
遅延トランザクションの場合はそれがコミットされるまでキーの
重複チェックは行われませんので、トランザクション開始が
「レコード前の前」になっているか「タスク前の前」になっているか
でキー重複チェックのタイミングの動作が変わってきます。
このあたりをチェックしてみられるとよろしいかと思います。
トランザクションの設定の問題のように思えます。
遅延トランザクションの場合はそれがコミットされるまでキーの
重複チェックは行われませんので、トランザクション開始が
「レコード前の前」になっているか「タスク前の前」になっているか
でキー重複チェックのタイミングの動作が変わってきます。
このあたりをチェックしてみられるとよろしいかと思います。
投票数:0
平均点:0.00
gs_kuwabara
投稿数: 229
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
Tanda様
アドバイスありがとうございます。
遅延トランザクションなのですが、
APGで試しても見ました、
結果、「タスクの前の前」の場合は、おっしゃるとおり
チェックはされませんでした。
「レコードの前の前」の場合は即チェックされております。
APGで「レコードの前の前」になってるプログラムに
親タスクを作成してサブフォーム化すると、
チェックがされなくなってしまうのです。
アドバイスありがとうございます。
遅延トランザクションなのですが、
APGで試しても見ました、
結果、「タスクの前の前」の場合は、おっしゃるとおり
チェックはされませんでした。
「レコードの前の前」の場合は即チェックされております。
APGで「レコードの前の前」になってるプログラムに
親タスクを作成してサブフォーム化すると、
チェックがされなくなってしまうのです。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
gs_kuwabaraさん、
親タスクを挿入すると、子タスクのトランザクションはデフォルトでは
親の配下に置かれるようになります。つまり、「W=有効な遅延
トランザクション内」の設定です。
したがって、親のレコード処理(またはタスク処理)が完了するまで
子のトランザクションもコミットされず、重複チェックも行われないよう
になります。
親タスクを挿入すると、子タスクのトランザクションはデフォルトでは
親の配下に置かれるようになります。つまり、「W=有効な遅延
トランザクション内」の設定です。
したがって、親のレコード処理(またはタスク処理)が完了するまで
子のトランザクションもコミットされず、重複チェックも行われないよう
になります。
投票数:0
平均点:0.00
gs_kuwabara
投稿数: 229
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
Tanda様
アドバイスありがとうございました。
アドバイスありがとうございました。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
リッチクライアントでは遅延トランザクションが必須ですから、
このあたりは通常のオンラインタスクとは作りを変える必要が
あるかもしれませんね。
このあたりは通常のオンラインタスクとは作りを変える必要が
あるかもしれませんね。
投票数:0
平均点:0.00