1

エラーが発生します

FRM - 40737 - WHEN-VALIDATE-RECORD トリガーの不正な制限付きプロシージャ GO_BLOCK。

私のコードは

IF event_name = 'WHEN-VALIDATE-RECORD'
      THEN
         IF (form_name = 'OEXOEORD' AND block_name = 'ORDER')
         THEN
            -- call procedure to validate and cascade the ship method code.
            cascade_ship_method;
         execute_query;
         END IF;

ここで何が間違っていますか?

4

2 に答える 2

2

これは、Oracle Forms には制限付きと制限なしの 2 種類の組込みプロシージャがあるためです。トリガーには、制限付きプロシージャを有効にするものと、有効にしないものがあります(Oracle Formsのヘルプを参照してください。各トリガーには、有効にするプロシージャに関する情報があります)。

トリガー WHEN-VALIDATE-ITEM は、たとえば、ユーザーがカーソルをあるレコードから別のレコードに移動したときに発生します (これはナビゲーションと呼ばれます)。この場合、1 つのレコードを残し、別のレコードに入ります。トリガーのチェーンに続いて起動されます

  • WHEN-VALIDATE-ITEM
  • WHEN-VALIDATE-RECORD
  • ポストアイテム
  • 事後記録
  • 事前録画
  • プレアイテム

このトリガーのいずれかが失敗した場合、ナビゲーションはキャンセルされ、カーソルは元のアイテムに戻ります。新しいナビゲーション(GO_BLOCKなど)を開始するプロシージャをコールすると、Oracle Formsは最初のナビゲーションを管理できなくなります。

これが、一部の手順が制限されている理由です。

于 2016-01-14T21:07:14.783 に答える