機能別のステートメント

このドキュメントでは、機能別に分類された Natural ステートメントの概要を示します。

注意:

  1. ストラクチャードモードおよびレポーティングモードの両方で使用できるステートメントと、レポーティングモードでしか使用できないステートメントが存在します。『プログラミングガイド』の「Natural プログラミングモード」を参照してください。
  2. ステートメント DLOGOFFDLOGONSHOWIMPORT および EXPORT は、Entire DB がインストールされている場合にのみ利用できます。詳細については、『Entire DB』ドキュメントを参照してください。

データベースへのアクセスと更新

次のタイプのステートメントが有効です。

Natural DML ステートメント

データベース内の情報にアクセスして操作するには、次の Natural データ操作言語(DML)ステートメントを使用します。

READ データベースファイル内の物理的または論理的な一連のレコードを読み取ります。
FIND ユーザー指定の条件に基づいて、データベースファイルからレコードを選択します。
HISTOGRAM データベースフィールドの値を読み取ります。
GET ISN(内部シーケンス番号)または RNO(レコード番号)を指定してレコードを読み取ります。
GET SAME 現在処理中のレコードを再読み取りします。
ACCEPT/REJECT ユーザー指定の条件に基づいて、レコードの受け入れ/除外を行います。
PASSW パスワード保護されたファイルにアクセスするためのパスワードを指定します。
LIMIT READFIND または HISTOGRAM 処理ループの実行回数を制限します。
STORE 新しいレコードをデータベースに追加します。
UPDATE データベース内のレコードを更新します。
DELETE データベースからレコードを削除します。
END TRANSACTION 論理トランザクションの終了を示します。
BACKOUT TRANSACTION 完了していない論理トランザクションをバックアウトします。
GET TRANSACTION DATA 直前の END TRANSACTION ステートメントで保存したトランザクションデータを読み取ります。
RETRY 他のユーザー用にホールド状態になっているレコードの再読み取りを試みます。
AT START OF DATA 処理ループで一連のレコードの先頭が処理されるときに実行されるステートメントを指定します。
AT END OF DATA 処理ループで一連のレコードの最後が処理されたときに実行されるステートメントを指定します。
AT BREAK 制御フィールドの値が変更されるときに実行されるステートメントを指定します(ブレイク処理)。
BEFORE BREAK PROCESSING ブレイク処理の実行前に実行されるステートメントを指定します。
PERFORM BREAK PROCESSING 直ちにブレイク処理を呼び出します。

Natural SQL ステートメント

Natural では、Natural DML ステートメントの他に、SQL データベース上でデータを操作する Natural プログラムで使用する SQL ステートメントも提供しています。

次の Natural SQL ステートメントが有効です。

CALLDBPROC Natural からアクセスできる SQL データベースシステムのストアドプロシージャを呼び出します。
COMMIT 論理トランザクションの終了を示し、トランザクション中にロックされた全データを解放します。すべてのデータ変更がコミットされて確定されます。
DELETE カーソルを使用しないでテーブル内の行を削除したり("検索済"DELETE)、カーソルが位置づけられたテーブル内の行を削除したり("位置決め"DELETE)します。
INSERT 1 つ以上の行をテーブルに新しく追加します。
PROCESS SQL 基準データベースに対して SQL ステートメントを発行します。
READ RESULT SET 前の CALLDBPROC ステートメントで呼び出されたストアドプロシージャによって作成された結果セットを読み込みます。
ROLLBACK 最後のリカバリ単位の開始以降に行われたデータベース更新をすべて元に戻します。
SELECT 任意の行数を取得するためのカーソル選択と、多くても 1 つの行を取得する非カーソル選択(単独 SELECT)の両方をサポートします。
UPDATE カーソルを使用しないでテーブル内の行に対して更新処理を実行したり("検索済"UPDATE)、カーソルが位置づけられた行の列に対して更新処理を実行したり("位置決め"UPDATE)します。

算術演算とデータ移動操作

算術演算とデータ移動操作には次のステートメントを使用します。

COMPUTE 算術演算を実行するか、値をフィールドに割り当てます。
ADD 複数のオペランドを加算します。
SUBTRACT 1 オペランドから他の 1 つ以上のオペランドを減算します。
MULTIPLY 複数のオペランドを乗算します。
DIVIDE 1 オペランドを他のオペランドに除算します。
EXAMINE TRANSLATE フィールド内の文字を大文字/小文字または他の文字に変換します。
MOVE 1 オペランドの値を 1 つ以上のフィールドに移動します。
MOVE ALL 値の複数オカレンスを他のフィールドに移動します。
COMPRESS 複数のフィールドの値を 1 フィールドに連結します。
SEPARATE 1 フィールドの内容を複数のフィールドに分割します。
EXAMINE 特定の値でフィールドをスキャンし、それを置き換えたり、出現回数をカウントしたりします。
RESET フィールドの値を 0(数値の場合)、空白(英数字の場合)、またはその初期値に設定します。

ループ実行

処理ループの実行には次のステートメントが関係します。

ESCAPE 処理ループの実行を停止します。
FOR 処理ループを開始し、ループの処理回数を制御します。
REPEAT 処理ループを開始し、指定された条件に基づいて終了します。
SORT レコードをソートします。

出力レポートの作成

出力レポートの作成には次のステートメントを使用します。

FORMAT 出力パラメータ設定を指定します。
DISPLAY 列形式で出力するフィールドを指定します。
WRITE / PRINT 列形式以外で出力するフィールドを指定します。
WRITE TITLE レポートの各ページの上に出力するテキストを指定します。
WRITE TRAILER レポートの各ページの下に出力するテキストを指定します。
AT TOP OF PAGE 新しい出力ページの開始時に実行される処理を指定します。
AT END OF PAGE 出力ページの最後に達したときに実行される処理を指定します。
SKIP レポートに 1 行以上の空行を作成します。
EJECT タイトルやヘッダーを含まずにページ送りを行います。
NEWPAGE タイトルやヘッダー付きでページ送りを行います。
SUSPEND IDENTICAL SUPPRESS 1 レコードに対して同一値の省略を中止します。
DEFINE PRINTER 論理出力先にレポートを割り当てます。
CLOSE PRINTER プリンタをクローズします。

対話型処理用の画面生成

データの対話型処理のためにデータ画面(マップ)を生成するには、次のステートメントを使用します。

INPUT データを表示したり、入力したりするための形式化された画面(マップ)を作成します。
REINPUT INPUT ステートメントを再実行します(前の INPUT ステートメントに対する入力データが誤りであった場合)。
DEFINE WINDOW ウィンドウのサイズ、位置、および属性を指定します。
SET WINDOW ウィンドウを稼動したり解除したりします。
PROCESS PAGE Web リッチ GUI 画面に対するデータマッピングを作成します。
PROCESS PAGE USING ページレイアウトから生成されたアダプタオブジェクトを使用してリッチ GUI I/O 処理を実行します。
PROCESS PAGE UPDATE PROCESS PAGE ステートメントを再実行します。
PROCESS PAGE MODAL 処理ブロックを開始し、リッチ GUI ウィンドウの存続期間を制御します。

論理条件の処理

Natural プログラムの実行中に検出された条件に基づいてステートメントの実行を制御するには、次のステートメントを使用します。

IF 論理条件に基づいてステートメントを実行します。
IF SELECTION 一連の英数字フィールドのうちの 1 つにのみ値が含まれていることを確認します。
DECIDE FOR 複数の論理条件に基づいてステートメントを実行します。
DECIDE ON 変数の内容に基づいてステートメントを実行します。

プログラムおよびルーチンの呼び出し

プログラムおよびルーチンの実行と関連して次のステートメントを使用します。

CALL Natural プログラムから Natural 以外のプログラムを呼び出します。
CALLNAT Natural サブプログラムを呼び出します。
CALL FILE Natural 以外のプログラムを呼び出し、Adabas 以外のファイルからレコードを読み取ります。
CALL LOOP Natural 以外のプログラムへのコールを含む処理ループを生成します。
DEFINE SUBROUTINE Natural サブルーチンを定義します。
ESCAPE ルーチンの実行を中止します。
FETCH Natural プログラムを呼び出します。
PERFORM Natural サブルーチンを呼び出します。
PROCESS COMMAND コマンドプロセッサを呼び出します。
RUN ソースプログラムをコンパイルて実行します。

機能

関数を作成するには次の Natural ステートメントを使用します。

DEFINE FUNCTION Natural ステートメントのオペランドの代わりに呼び出すことができる関数を作成します。関数は、タイプファンクションの Natural オブジェクトで定義されます。
DEFINE PROTOTYPE ファンクションコールに使用するプロパティを指定します。
ファンクションコール タイプファンクションの Natural オブジェクトを呼び出すために使用します。

プログラムとセッションの終了

アプリケーションの実行または Natural セッションを終了するには、次の Natural ステートメントを使用します。

STOP アプリケーションの実行を終了します。
TERMINATE Natural セッションを終了します。

ワークファイル/PC ファイルの制御

(Adabas 以外の)物理順ワークファイルに対するデータの読み取り/書き込みには次の Natural ステートメントを使用します。

WRITE WORK FILE ワークファイルにデータを書き込みます。
DOWNLOAD PC FILE メインフレーム、UNIX、または OpenVMS プラットフォームから PC へのデータ転送を可能にします。
READ WORK FILE ワークファイルからデータを読み取ります。
UPLOAD PC FILE PC からメインフレーム、UNIX、または OpenVMS プラットフォームへのデータ転送を可能にします。
CLOSE WORK FILE ワークファイルをクローズします。
CLOSE PC FILE 特定の PC ワークファイルをクローズします。
DEFINE WORK FILE ファイル名をワークファイルに割り当てます。

コンポーネントベースプログラミング

コンポーネントベースプログラミングと関連して次の Natural ステートメントを使用します。

DEFINE CLASS Natural クラスモジュール内からクラスを指定します。
CREATE OBJECT 指定したクラスのオブジェクト(インスタンスとも呼ばれる)を作成します。
SEND METHOD オブジェクトのメソッドを呼び出します。
INTERFACE クラスの特定機能に対するインターフェイス(メソッドおよびプロパティの集合)を定義します。
METHOD インターフェイス定義外のメソッドの実装として、サブプログラムを割り当てます。
PROPERTY インターフェイス定義外のプロパティに対する実装として、オブジェクトデータ変数を割り当てます。

ダイナミック変数または X-array のメモリ管理制御

EXPAND ダイナミック変数の割り当てメモリを指定したサイズに拡張します。または、X-array のオカレンス数を拡張します。
REDUCE ダイナミック変数のサイズまたは X-array のオカレンス数を縮小します。
RESIZE ダイナミック変数のサイズまたは X-array のオカレンス数を調整します。

Natural リモートプロシージャコール

OPEN CONVERSATION これにより、クライアントは会話を開き、会話に取り込むリモートサブプログラムを指定することができます。
CLOSE CONVERSATION これにより、クライアントは会話を閉じることができます。現在の会話、開かれた別の会話、または開かれたすべての会話を閉じることができます。
DEFINE DATA CONTEXT コンテキスト変数と呼ばれる変数を定義します。コンテキスト変数では、対応する CALLNAT ステートメントで変数をパラメータとして明示的に渡さなくても、1 つの会話の中で複数のリモートサブプログラムがこの変数を使用できます。

Natural RPC(リモートプロシージャコール)』ドキュメントの「関係する Natural ステートメント」セクションも参照してください。

インターネットと XML

PARSE Natural プログラムから XML ドキュメントを解析できるようになります。
REQUEST DOCUMENT 外部システムへのアクセスを可能にします。

その他

DEFINE DATA Natural プログラムまたはルーチンで使用するデータ要素を定義します。
END Natural プログラムまたはルーチンのソースコードの終了を示します。
INCLUDE コンパイル時に Natural コピーコードを組み込みます。
ON ERROR ランタイムエラーをインターセプトします。インターセプトしない場合は、Natural エラーメッセージが表示された後、Natural プログラムが終了します。
RELEASE Natural スタックの内容を削除します。FIND ステートメントによって保存された ISN の集合を解放します。Natural グローバル変数を解放します。
SET CONTROL Natural プログラム内から Natural 端末コマンドを実行します。
SET KEY 端末キーに機能を割り当てます。
SET GLOBALS セッションパラメータの値を設定します。
SET TIME *TIMD システム変数に対する参照開始時点を設定します。
STACK Natural スタックにデータ/コマンドを挿入します。

レポーティングモードのステートメント

次のステートメントは、レポーティングモードでのみ使用できます。

LOOP 処理ループを閉じます。
DO/DOEND 論理条件に基づいて実行するステートメントのグループを指定します。
OBTAIN ファイルから 1 つ以上のフィールドを読み取ります。
REDEFINE フィールドを再定義します。

次のステートメントは、ストラクチャードモードレポーティングモードの両方で使用できます。ただし、ステートメント構造と機能が異なるものがあります。

AT START OF DATA 処理ループで一連のレコードの先頭が処理されるときに実行されるステートメントを指定します。
AT END OF DATA 処理ループで一連のレコードの最後が処理されたときに実行されるステートメントを指定します。
AT BREAK 制御フィールドの値が変更されるときに実行されるステートメントを指定します(ブレイク処理)。
AT TOP OF PAGE 新しい出力ページの開始時に実行される処理を指定します。
AT END OF PAGE 出力ページの最後に達したときに実行される処理を指定します。
BEFORE BREAK PROCESSING ブレイク処理の実行前に実行されるステートメントを指定します。
CALL LOOP Natural 以外のプログラムへのコールを含む処理ループを生成します。
CALL FILE Natural 以外のプログラムを呼び出し、Adabas 以外のファイルからレコードを読み取ります。
COMPUTE 算術演算を実行するか、値をフィールドに割り当てます。
DEFINE SUBROUTINE Natural サブルーチンを定義します。
ESCAPE 処理ループの実行を停止します。
FIND ユーザー指定の条件に基づいて、データベースファイルからレコードを選択します。
GET SAME 現在処理中のレコードを再読み取りします。
HISTOGRAM データベースフィールドの値を読み取ります。
IF 論理条件に基づいてステートメントを実行します。
IF SELECTION 一連の英数字フィールドのうちの 1 つにのみ値が含まれていることを確認します。
ON ERROR ランタイムエラーをインターセプトします。インターセプトしない場合は、Natural エラーメッセージが表示された後、Natural プログラムが終了します。
READ データベースファイル内の物理的または論理的な一連のレコードを読み取ります。
READ WORK FILE ワークファイルからデータを読み取ります。
REPEAT 処理ループを開始し、指定された条件に基づいて終了します。
SORT レコードをソートします。
STORE 新しいレコードをデータベースに追加します。
UPDATE データベース内のレコードを更新します。
UPLOAD PC FILE PC からメインフレーム、UNIX、または OpenVMS プラットフォームへのデータ転送を可能にします。