EGL add 文は、ファイル、メッセージ・キュー、またはデータベースの中にレコードを書き込みます。またはデータベースにレコード・セットを書き込みます。
以下に例を示します。
if (userRequest == "A") try add record1; onException myErrorHandler(12); end end
add 文の振る舞いは、レコード・タイプによって異なります。SQL 処理の詳細については、『SQL レコード』を参照してください。
索引付きレコードを追加するときは、レコード内のキーによって、ファイル内でのレコードの論理位置が判別されます。 すでに使用されているファイル位置にレコードを追加すると、 ハード入出力エラー UNIQUE、または (重複が許可されている場合は) ソフト入出力エラー DUPLICATE になります。
MQ レコードを追加するとき、レコードはキューの最後に入れられます。 この追加処理は、add が 以下に示す 1 つ以上の MQSeries® 呼び出しを呼び出すことによって行われます。
相対レコードを追加するときは、キー項目によって、ファイル内でのレコードの位置が指定されます。 ただし、すでに使用されているファイル位置にレコードを追加すると、 ハード入出力エラー UNIQUE になります。
シリアル・レコードを追加するとき、レコードはファイルの末尾に入れられます。
生成されたプログラムでシリアル・レコードが追加されてから、 同じファイルに対して get next 文が発行されると、 get next 文が実行される前に、 ファイルが閉じられてから再び開かれます。 したがって、add 文の後に実行される get next 文では、ファイル内の最初のレコードが読み取られます。この振る舞いは、get next 文と add 文が別々のプログラムにあり、一方のプログラムで他方のプログラムが呼び出される場合にも起こります。
複数のプログラムで同時に同じファイルが開かないようにしておくことをお勧めします。
制限: CICS® for z/OS® では、同じスプール・ファイルに関する add 文と get next 文を組み合わせて 1 つのプログラムに組み込むことはできません。 この制限は、add 文と get next 文が別々のプログラムにあり、一方のプログラムが他方のプログラムを呼び出す場合にも適用されます。
INSERT INTO tableName (column01, ... columnNN) values (:recordItem01, ... :recordItemNN)
try add employees; onException sysLib.rollback(); end
関連する概念
パーツの参照
レコード・タイプとプロパティー
SQL サポート
関連するタスク
構文図