Page History
GET コマンドを使って、ストアド・プロシージャ呼び出しから戻された値を取得する、もしくは準備したステートメントのパラメータ・リストからのエラーの行番号を取得することができます。
構文:
コマンド | キーワード | 値 | 開発者用メモ |
|---|---|---|---|
GET | OBJECT | *PARAMETERLISTROW | 必須。この値を使って、エラーが生じたリスト・エントリーを返します。 |
*PARAMETERCALL | ストアド・プロシージャの呼び出しパラメータを返す場合に使用されます。 | ||
*NEXTRESULT | 次の結果セットに移動する際に使用します。 |
コメント/警告
このコマンドは、パラメータ・リストを含むプリペアド・ステートメントが重複キー・エラーなどの例外を返した場合に特に役立ちます。このコマンドを使用すると、リスト内のどの行がエラーの原因なのかを解明できるため、正しい手段を講じることができます。
...
- ステップ 1: プリペアド・ステートメントを実行します。
- ステップ 2: 返されたステータスがOKの場合、処理を続行します。
- ステップ 3: 返されたステータスがOK以外の場合、GETコマンドを使用して、エラーの行を明確にします。
例
RDML
* INSERT ステートメント用のフィールド定義DEFINE FIELD(#COLCMD) TYPE(*CHAR) LENGTH(100)DEF_LIST NAME(#WRKCMD) FIELDS(#COLCMD) TYPE(*WORKING)*
...
* エラー発生の場合、問題の行を検知するIF COND('#JSMSTS *NE OK')CHANGE FIELD(#JSMCMD) TO('GET OBJECT(*PARAMETERLISTROW)')USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG)*DISPLAY FIELDS(#JSMMSG)ENDIF
RDMLX
* JSM コマンドおよびメッセージ・フィールドの定義Define Field(#JSMSTS) Type(*CHAR) Length(020)Define Field(#JSMMSG) Type(*CHAR) Length(256)Define Field(#JSMCMD) Type(*CHAR) Length(256)Define Field(#JSMHND) Type(*Char) Length(4)
...