Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

ZLOAD

ルーチンを現在のルーチン・バッファにロードします。

Synopsis

ZLOAD:pc routine
ZL:pc routine

引数

pc オプション — 後置条件式。
routine オプション — ロードされるルーチン。省略される場合、Caché は現在のデバイスからルーチンをロードします。

概要

ZLOAD コマンドは、ObjectScript ルーチンをルーチン・バッファにロードします。ZLOAD には、以下の 2 つの形式があります。

  • 引数なしの ZLOAD

  • 引数付きの ZLOAD

引数なしの ZLOAD

引数なしの ZLOAD は、ObjectScript ルーチンを、現在のデバイスからユーザのルーチン・バッファにロードします。デバイスからルーチンをロードするには、以下を実行します。

  1. デバイスを開くための OPEN コマンド

  2. デバイスを現在のデバイスにするための USE コマンド

  3. 引数なしの ZLOAD コマンド

Caché が NULL 文字列行 ("") を読み取るまで、行のロードを継続します。ロードされたこのルーチンは、ZSAVE コマンドで保存するまで名前がありません。

引数付きの ZLOAD

ZLOADroutine は、指定された (既存の) ルーチンを、現在のネームスペースからユーザのルーチン・バッファにロードします。

ZLOAD は、ルーチンをロードするときに暗黙的に引数なしの ZREMOVE を実行します。つまり、ZLOAD はロードされたルーチンを書き込むときに、以前ロードされたすべてのルーチンを削除します。$ZNAME 特殊変数で、現在ロードされているルーチンを判別できます。ルーチンをロードすると、ZLOAD は、ルーチンの先頭で行ポインタを配置します。

一度ロードされると、ユーザが別のルーチンを ZLOAD コマンドで明示的にロードするか、あるいは DO コマンドや GOTO コマンドで暗示的にロードするまで、ルーチンは現在のユーザ・プロセスのままです。

ルーチンが現在のものである限り、(ZINSERT および ZREMOVE コマンドで) ルーチンを編集し、ZPRINT コマンドで行を 1 行以上表示したり、$TEXT 関数で単一行を返すことができます。

プログラマ・プロンプトから入力したり、XECUTE コマンドまたは $XECUTE 関数で呼び出したりする場合は、ZLOAD コマンドのみ使用できます。このオペレーションはルーチンの実行に影響を与える可能性があるので、ルーチンの本体にコード化するべきではありません。ルーチン内で ZLOAD を指定すると、コンパイル・エラーが返されます。また、ルーチンから ZLOAD を実行しようとしても、エラーが生成されます。

引数

pc

オプションの後置条件式。Caché は、後置条件式が True (0 以外の数値に評価される) の場合にこのコマンドを実行します。Caché は、後置条件式が False (0 に評価される) の場合はコマンドを実行しません。詳細は、"Caché ObjectScript の使用法" の "コマンド後置条件式" を参照してください。

routine

ロードされるルーチン名。ルーチン名は、大文字と小文字を区別します。指定されたルーチンが存在しない場合、システムは <NOROUTINE> エラーを生成します。

ZLOAD を可能にするために routine への実行許可を持つ必要があります。この許可がない場合は、Cache は <PROTECT> エラーを生成します。

ZLOADroutine のロードに成功すると、その後のすべてのエラーは現在ロードされているルーチンの名前を追加します。これは、エラーがルーチンと関係があるかどうかにかかわらずネームスペース全体にわたって実行されます。詳細は、"$ZERROR" 特殊変数を参照してください。

以下のターミナルの例では、ディスクに保存されているルーチン ROUT をロードします。

USER>ZLOAD ROUT

以下のターミナルの例では、デバイス dev から最初のルーチンをロードします。

USER>OPEN dev
USER>USE dev
USER>ZLOAD

メモ

ZLOAD でのルーチンの振る舞い

routine を指定する場合、Caché はメモリ内のルーチン・バッファのプールのルーチンを検索します。ルーチンがない場合、Caché はルーチンの ObjectScript オブジェクト・コード・バージョンをバッファの 1 つにロードします。ObjectScript ソース (中間) コードは、現在のネームスペースの ^ROUTINE グローバルに残りますが、編集を行って編集結果を保存した場合には更新されます。

例えば、ZLOAD Test は (まだロードされていない場合に) ルーチン Test のオブジェクト・コード・バージョンをロードします。管理ポータルを使用して、^ROUTINE グローバルの内容を表示し、編集することができます。システム, グローバル オプションを選択し、左側の列のリストから現在のネームスペースを選択します。

routine を省略した場合、Caché は、ユーザが NULL 行を入力する (つまり、[Return] を押す) ことでコードを終了するまで、現在のデバイスから (通常はキーボードから) 入力した新しいコード行をロードします。このルーチンは、次の ZSAVE コマンドで保存するまで名前がありません。

ZLOAD と言語モード

ルーチンがロードされるとき、現在の言語モードはロードされたルーチンの言語モードに変換されます。呼び出されたルーチンの終了時、言語モードは呼び出し元のルーチンの言語モードに復元されます。しかし、ZLOAD でロードされたルーチンの終了時、言語モードは前の言語モードに復元されません。言語モードの確認と設定の詳細は、%SYSTEM.ProcessOpens in a new tab クラスの LanguageMode()Opens in a new tab メソッドを参照してください。

関連項目

FeedbackOpens in a new tab