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?

$QSUBSCRIPT

変数名または添え字名を返します。

Synopsis

$QSUBSCRIPT(namevalue,intexpr)
$QS(namevalue,intexpr)

パラメータ

namevalue 文字列、もしくは文字列と評価される式で、添え字付きまたは添え字なしの、。ローカル変数の名前、プロセス・プライベート・グローバル、またはグローバル変数を表します。
intexpr 返す名前を指定する整数コードです。変数名、添え字名またはネームスペース名のいずれかを返します。

説明

$QSUBSCRIPT は、intexpr の値に応じて、変数名、または namevalue の指定した添え字名を返します。namevalue がグローバル変数の場合、明示的に指定されていれば、ネームスーペース名を返すこともできます。$QSUBSCRIPTは、既定のネームスペース名を返しません。

パラメータ

namevalue

引用符で囲まれた文字列または文字列に評価される式。ローカル参照またはグローバル参照です。Name(s1,s2,...,sn) という形式にできます。

文字列がグローバル参照のとき、ネームスペース参照を含むことができます。namevalue は引用符で囲まれた文字列であるため、リテラル引用符として正しく解析されるために、ネームスペース参照を囲む引用符を二重にする必要があります。

namevalue は、変数名をキャノニック形式 (完全な拡張参照) で参照する必要があります。ネイキッド・グローバル参照、または間接参照と共に $QSUBSCRIPT を使用するには、対応する完全な拡張参照を返すために $NAME 関数を使用できます。

intexpr

返す値を指定する整数式コードです。namevalue パラメータが形式 NAME(s1,s2,...,sn) を持つと仮定します。ここで n は最終添え字の順序数です。intexpr パラメータは、下の値のうちいずれでも持つことが可能です。

Code 返り値
< -1 <FUNCTION> エラーを生成します。これらの数値は後の拡張子用に保存されます。
-1 グローバル変数 namevalue がネームスペース名を含む場合に、ネームスペース名を返します。それ以外では、NULL ("") 文字列を返します。
0 変数名を返します。グローバル変数に対して ^NAME を返し、プロセス・プライベート・グローバル変数に対して ^||NAME を返します。ネームスペース名を返しません。
<=n 整数 n によって指定される添え字のレベルに対する添え字名を返します。1 が最初の添え字レベルで、定義された添え字レベルのうち n が最高レベルとなります。
>n 整数 >n は、NULL 文字列 ("") を返します。ここで、n は定義された添え字の最高レベルです。

以下の例は、namevalue が 1 つの添え字レベルを持つ添字付きグローバルであり、指定されたネームスペースの場合、$QSUBSCRIPT の値を返します。

   SET global="^|""account""|%test(""customer"")"
   WRITE !,$QSUBSCRIPT(global,-1)  ; account
   WRITE !,$QSUBSCRIPT(global,0)   ; ^%test
   WRITE !,$QSUBSCRIPT(global,1)   ; customer
   WRITE !,$QSUBSCRIPT(global,2)   ; null string

以下の例は、namevalue が 2 つの添え字レベルを持つプロセス・プライベート・グローバルの場合、$QSUBSCRIPT の値を返します。$ZREFERENCE 特殊変数には、最近参照された変数が含まれています。

   SET ^||myppg(1,3)="apples"
   WRITE !,$QSUBSCRIPT($ZREFERENCE,-1)  ; null string
   WRITE !,$QSUBSCRIPT($ZREFERENCE,0)   ; ^||myppg
   WRITE !,$QSUBSCRIPT($ZREFERENCE,1)   ; 1
   WRITE !,$QSUBSCRIPT($ZREFERENCE,2)   ; 3

以下の例は、ネイキッド・グローバル参照として指定されるグローバル変数に対する $QSUBSCRIPT 値を返します。$NAME 関数は、ネイキッド・グローバル参照をキャノニック形式に拡張するために使用されます。

   SET ^grocerylist("food","fruit",1)="apples"
   SET ^(2)="bananas"
   WRITE !,$QSUBSCRIPT($NAME(^(2)),2)   ; returns "fruit"

関連項目

FeedbackOpens in a new tab