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?

$QLENGTH

変数内の添え字レベルの数を返します。

Synopsis

$QLENGTH(var)
$QL(var)

パラメータ

var 変数名が含まれた文字列、またはこのような文字列に評価される式。この変数名では、添え字を指定しなくても、1 つ以上指定してもかまいません。

説明

$QLENGTH は、var 内の添え字レベルの数を返します。$QLENGTH は、var 内で指定された添え字レベルの数をカウントするだけです。$QLENGTH が添え字レベルの数を返すために、var の変数が定義されている必要はありません。

パラメータ

var

変数を指定する、引用符で囲まれた文字列または文字列に評価される式。この変数は、ローカル変数、プロセス・プライベート変数、またはグローバル変数のいずれかです。

文字列がグローバル参照の場合、var は、ネームスペース名を含めることで拡張グローバル参照を指定できます。var は引用符で囲まれた文字列であるため、リテラル引用符として正しく解析されるために、ネームスペース参照を囲む引用符は二重にする必要があります。例えば、"^|""SAMPLES""|myglobal(1,4,6)" のようにします。"^" という構文のプロセス・プライベート・グローバル内の引用符にも、同じ規則が適用されます。例えば、"^|""^""|ppgname(3,6)" のようにします。$QLENGTH は、指定されたネームスペースが存在するかどうかや、ユーザがそのネームスペースに対するアクセス特権を持っているかどうかを確認しません。

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

以下の例は、添え字付きグローバルと添え字なしのグローバルと共に使用する際の $QLENGTH の結果を示しています。1 つ目の $QLENGTH は、添え字のないグローバルを取り、0 を返します。2 つ目の $QLENGTH は、2 つの添え字レベルのあるグローバルを取り、2 を返します。変数名を囲む引用符が二重になっていることに注目してください。これは、var が引用符で囲まれた文字列として指定されているためです。

   WRITE !,$QLENGTH("^|""USER""|test")
      ; returns 0
   SET name="^|""USER""|test(1,""customer"")"
   WRITE !,$QLENGTH(name)
      ; returns 2

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

   SET ^||myppg("food","fruit",1)="apples"
   WRITE !,$QLENGTH($ZREFERENCE)   ; returns 3

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

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

関連項目

FeedbackOpens in a new tab