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

パスワード:


パスワード紛失

サブフォームで重複エラーのトラップ方法

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2013-5-1 12:48
gs_kuwabara  長老   投稿数: 229
いつもお世話になっております。

 リッチクライアントの画面にサブフォームがあり
 メモリーで定義のファイルをテーブルで配置してあります。

 明細行に商品コードを入力していくだけなのすが、
 件数が多い為、入力時に重複チェックを行いたいのです。

 テーブル上の重複チェックをしたいのですが、
 重複エラーがトラップでしません。
 処理終了時に重複エラーが発生します。

 同じメモリーテーブルをAPGで作成するとトラップできます。
 このAPGに親タスクを設けでサブフォーム化すると
 トラップができなくなりました。

 サブフォーム化するとエラーはトラップできないのでしょうか?

 ご教示頂ければ幸いです。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-5-1 18:40
Tanda  長老   投稿数: 2151
gs_kuwabaraさん、こんにちは。

トランザクションの設定の問題のように思えます。

遅延トランザクションの場合はそれがコミットされるまでキーの
重複チェックは行われませんので、トランザクション開始が
「レコード前の前」になっているか「タスク前の前」になっているか
でキー重複チェックのタイミングの動作が変わってきます。

このあたりをチェックしてみられるとよろしいかと思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-5-2 0:31
gs_kuwabara  長老   投稿数: 229
Tanda様

 アドバイスありがとうございます。
 遅延トランザクションなのですが、
 APGで試しても見ました、
 結果、「タスクの前の前」の場合は、おっしゃるとおり
 チェックはされませんでした。

 「レコードの前の前」の場合は即チェックされております。
 APGで「レコードの前の前」になってるプログラムに
 親タスクを作成してサブフォーム化すると、
 チェックがされなくなってしまうのです。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-5-2 10:15
Tanda  長老   投稿数: 2151
gs_kuwabaraさん、

親タスクを挿入すると、子タスクのトランザクションはデフォルトでは
親の配下に置かれるようになります。つまり、「W=有効な遅延
トランザクション内」の設定です。

したがって、親のレコード処理(またはタスク処理)が完了するまで
子のトランザクションもコミットされず、重複チェックも行われないよう
になります。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2013-5-7 9:23
gs_kuwabara  長老   投稿数: 229
Tanda様

 アドバイスありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2013-5-7 11:44
Tanda  長老   投稿数: 2151
リッチクライアントでは遅延トランザクションが必須ですから、
このあたりは通常のオンラインタスクとは作りを変える必要が
あるかもしれませんね。
投票数:0 平均点:0.00

  条件検索へ


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