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?

$MV

MultiValue 動的配列を作成または変更します。

Synopsis

SET $MV(dynvar,fpos[,vpos])=value

パラメータ

dynvar MultiValue 動的配列 の保持に使用される変数。
fpos フィールドレベル要素。dynvar 動的配列のフィールドレベル要素として value の挿入先を指定する整数。0 を指定すると、value は動的配列の先頭に追加されます。-1 を指定すると、value は動的配列の最後に追加されます。正の整数を指定すると、その位置のフィールドレベル要素が value に置き換えられます。
vpos オプション — 値レベル要素。dynvar 動的配列の fpos で指定されたフィールドの中で、値レベル要素として value の挿入先を指定する整数。0 を指定すると、valuefpos フィールドの先頭に追加されます。-1 を指定すると、valuefpos フィールドの最後に追加されます。正の整数を指定すると、fpos フィールド内のその位置の値レベル要素が value に置き換えられます。
spos オプション — サブ値レベル要素。dynvar 動的配列の vpos で指定された値レベル要素の中で、サブ値レベル要素として value の挿入先を指定する整数。0 を指定すると、valuevpos 要素の先頭に追加されます。-1 を指定すると、valuevpos 要素の最後に追加されます。正の整数を指定すると、vpos 内のその位置のサブ値レベル要素が value に置き換えられます。

説明

$MV 関数は、適切な動的配列区切り文字を使用して要素値を挿入することで、MultiValue 動的配列を作成および変更します。fpos を指定するとフィールド・マーク (@FM) 区切り文字 (CHAR(254))、vpos を指定すると値マーク (@VM) 区切り文字 (CHAR(253))、spos を指定するとサブ値マーク (@SM) 区切り文字 (CHAR(252)) が挿入されます。$MV により、要素を先頭または最後に追加したり、既存の要素値を指定された value に置き換えることができます。

既定では、$MV は、区切り文字ではなく、要素を挿入または追加します。そのため、要素値なしで動的配列区切り文字を挿入することはありません。動的配列区切り文字を挿入または追加するには、位置を示すパラメータ値を pos::1 と指定し、空文字列と同等とします。詳細は、以下の例を参照してください。

  SET $MV(dynval,-1)="apple"
  SET $MV(dynval,-1)="orange"
  WRITE dynval,!
  SET $MV(dynval,-1)="" // appends empty element
  WRITE dynval,!
  SET $MV(dynval,-1)="" // does nothing
  WRITE dynval,!
  SET $MV(dynval,-1::1)="" // appends 2nd delimiter
  WRITE dynval,!
  SET $MV(dynval,-1::1)=""  // appends 3rd delimiter
  WRITE dynval

以下の例では、3 つのフィールド要素を持つ動的配列を作成します。

  SET $MV(dynval,-1)="apple"
  SET $MV(dynval,-1)="orange"
  SET $MV(dynval,-1)="banana"
  WRITE dynval

以下の例では、3 つの要素の動的配列の先頭に要素値 “FRUIT” を追加して、4 つのフィールド要素を持つ動的配列を作成します。

  SET $MV(dynval,-1)="apple"
  SET $MV(dynval,-1)="orange"
  SET $MV(dynval,-1)="banana"
  SET $MV(dynval,0)="FRUIT"
  WRITE dynval

以下の例では、動的配列の 2 番目の要素の値 (“orange”) を値 “nectarine” に置き換えます。

  SET $MV(dynval,-1)="apple"
  SET $MV(dynval,-1)="orange"
  SET $MV(dynval,-1)="banana"
  SET $MV(dynval,2)="nectarine"
  WRITE dynval

以下の例では、3 つのフィールド要素を持つ動的配列を作成して、4 番目の空の要素を追加し、2 番目の要素値を削除します。

  SET $MV(dynval,-1)="apple"
  SET $MV(dynval,-1)="orange"
  SET $MV(dynval,-1)="banana"
  SET $MV(dynval,-1)=""
  SET $MV(dynval,2)=""
  WRITE dynval

以下の例では、3 つのフィールド要素を持つ動的配列を作成して、2 つの値レベル要素を最初のフィールド要素の中に追加します。

  SET $MV(dynval,-1)="apple"
  SET $MV(dynval,-1)="orange"
  SET $MV(dynval,-1)="banana"
  SET $MV(dynval,1,-1)="Braeburn"
  SET $MV(dynval,1,-1)="Macintosh"
  WRITE dynval

関連項目

  • "Caché MVBasic Reference" の "動的配列"

FeedbackOpens in a new tab