Skip to main content

拡張グローバル参照

現在のネームスペース以外のネームスペースに格納されているグローバルの参照も可能です。これを拡張グローバル参照、または省略して拡張参照と呼びます。

グローバル参照の最大長に関する規則は、拡張グローバル参照にも、より一般的なグローバル参照にも同様に適用されます。

拡張グローバル参照の形式

拡張参照には以下の 2 つの形式があります。

  • 明示的なネームスペース参照 — グローバル参照構文の中で、グローバルを格納するネームスペース名を指定します。

  • 暗黙のネームスペース参照 — グローバル参照構文の中でディレクトリを指定し、さらに必要に応じてシステム名を指定します。この場合、物理データセット (ディレクトリとシステム) がグローバル参照の一部として割り当てられるため、グローバル・マッピングは適応されません。

明示的なネームスペースを優先的に使用します。これにより、必要に応じて、アプリケーション・コードを変更せずに外部的に論理マッピングを再定義できます。

InterSystems IRIS は、以下の 2 つの拡張参照の構文をサポートします。

  • ブラケット構文 - 角括弧 ([ ]) で拡張参照を囲みます。

  • 環境構文 - 垂直バー (| |) で拡張参照を囲みます。

Note:

以下に示す例では、Windows のディレクトリ構造を使用しています。実用面では、このような参照の形式は、使用するオペレーティング・システムで決まります。

ブラケット構文

ブラケット構文を使用して、明示的あるいは暗黙のネームスペースで拡張グローバル参照を指定できます。

明示的なネームスペース

^[nspace]glob

暗黙ネームスペース

^[dir,sys]glob

明示的なネームスペース参照にある nspace は、現在、グローバル glob のマップ先にも複製先にもなっていない定義済みのネームスペースです。また、暗黙のネームスペース参照において、dir はディレクトリ (ディレクトリ名の最後には円記号 \ を追加)、sys はシステム、glob はディレクトリ内のグローバルです。nspace または dir がキャレット (^) で指定されている場合、プロセス・プライベート・グローバルへの参照です。

ディレクトリとシステム名またはネームスペース名は、変数として指定しない限り引用符で囲みます。ディレクトリとシステムは共に暗黙のネームスペースを構成します。また、暗黙のネームスペースは以下のいずれかを参照できます。

  • 指定されたシステムの指定ディレクトリ

  • 参照でシステム名を指定していない場合、ローカル・システムで指定したディレクトリ。システム名を暗黙のネームスペース参照から削除する場合、ディレクトリ参照内に二重キャレット文字 (^^) を置き、削除したシステム名であることを示す必要があります。

以下はリモート・システムに暗黙のネームスペースを指定します。

["dir","sys"]

以下はローカル・システムに暗黙のネームスペースを指定します。

["^^dir"]

例えば、以下は SALES というマシンの C:\BUSINESS\ ディレクトリにあるグローバル SAMPLE にアクセスします。

  Set x = ^["C:\BUSINESS\","SALES"]SAMPLE

以下は、ローカル・マシンの C:\BUSINESS\ ディレクトリにあるグローバル SAMPLE にアクセスします。

   Set x = ^["^^C:\BUSINESS\"]SAMPLE

MARKETING として定義済みのネームスペースでグローバル SAMPLE にアクセスします。

   Set x = ^["MARKETING"]SAMPLE

プロセス・プライベート・グローバル SAMPLE にアクセスするには:

   Set x = ^["^"]SAMPLE

データベースへの参照を持つブラケット構文

InterSystems IRIS には、拡張参照内でデータベースを表す特殊なブラケット構文が用意されています。

CPF ファイルで指定されているように、データベース名を含む拡張参照を作成できます。:ds:DB_name の形式を使用します。以下に例を示します。

["^^:ds:MYDATABASE"]

同様の構文がミラー上のデータベースを参照する拡張参照で利用できます。:mirror:mirror_name:mirror_DB_name の形式を使用します。例えば、ミラー CORPMIR に含まれる mirdb1 というミラー・データベース名のデータベースを参照する場合は、以下に示すように暗黙の参照を作成できます。

["^^:mirror:CORPMIR:mirdb1"]

ミラーリングされるデータベースのパスは、ローカル・データベースとリモート・データベースの両方に使用できます。

環境構文

環境構文は以下のように定義されます。

^|"env"|global

"env" は、次の 5 つの形式のうちのいずれかです。

  • NULL 文字列 ("") — ローカル・システムの現在のネームスペース。

  • "namespace"global が現在マップされていない定義済みのネームスペース。ネームスペース名は、大文字と小文字を区別しません。namespace"^" の特殊値である場合、これはプロセス・プライベート・グローバルとなります。

  • "^^dir" — 暗黙のネームスペースであり、既定のディレクトリはローカル・システムの指定ディレクトリです。dir の最後には円記号 (\) を追加します。

  • "^system^dir" — 暗黙のネームスペースであり、既定のディレクトリは指定リモート・システムの指定ディレクトリです。dir の最後には円記号 (\) を追加します。

  • 省略 — "env" がまったくない場合、これはプロセス・プライベート・グローバルです。

SAMPLE にマッピングが定義されていない場合、以下の構文を使用し、現システムのネームスペースでグローバル SAMPLE にアクセスします。

   Set x = ^|""|SAMPLE

これは、単純グローバル参照と同じです。

   Set x = ^SAMPLE

MARKETING として定義済みのネームスペースにマップされたグローバル SAMPLE にアクセスします。

   Set x = ^|"MARKETING"|SAMPLE

暗黙のネームスペースを使用して、ローカル・システムの C:\BUSINESS\ ディレクトリにあるグローバル SAMPLE にアクセスします。

   Set x = ^|"^^C:\BUSINESS\"|SAMPLE

暗黙のネームスペースを使用して、SALES というリモート・システムの C:\BUSINESS ディレクトリにあるグローバル SAMPLE にアクセスします。

   Set x = ^|"^SALES^C:\BUSINESS\"|SAMPLE

プロセス・プライベート・グローバル SAMPLE にアクセスするには:

   Set x = ^||SAMPLE
   Set x=^|"^"|SAMPLE
FeedbackOpens in a new tab