ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 WebDBtoolsユーザーズガイド

6.5.2 <!SETVAR>

説明

<!SETVAR>は、変数およびリスト要素の値を更新するタグです。
<!VAR>で定義していない変数に対して、<!SETVAR>で変数に値を設定すると、ローカル変数が定義されます。
グローバル変数の場合、変数名をパッケージ名で修飾することで、カレントパッケージ以外のグローバル変数の値を更新することができます。

構文

<!SETVAR name value [ REF ] >

パラメタ

name

value

REF :

概念図

使用例

(1) 単純な入力

<!SETVAR X 100>            Xの値は100
<!SETVAR Y '100 + 300'>    Yの値は400
<!SETVAR Z X>              Zの値は100
<!SETVAR X 50>             Xの値は50となるがZの値は100のまま

(2) REFパラメタ

<!SETVAR X 100>
<!SETVAR Y 200>
<!SETVAR P X REF>          PはXと同じデータを指す
                           PとXの値は100
<!SETVAR X 300>            PとXの値はともに300
<!SETVAR P 400>            PとXの値はともに400
<!SETVAR P Y REF>          PはYと同じデータを指す
                               PとYの値は200、Xの値は400のまま
<!SETVAR P 500>             PとYの値は500
<!SETVAR A '(0,1,2)'>
<!SETVAR B[0] A[0] REF>    
<!SETVAR B[1] A[10] REF>   <誤り>要素A[10]は存在しない
<!SETVAR B[2] 200 REF>     <誤り>200は変数でもリスト要素でもない

(3) REFの用途:構造データ

<!SETVAR 'PERSON1{Name}' "山田">
<!SETVAR 'PERSON1{Age}' 25>
<!SETVAR 'PERSON2{Name}' "田中">
<!SETVAR 'PERSON2{Age}' 23>
<!SETVAR 'PERSON1{Wife}' PERSON2 REF>
<!SETVAR 'PERSON2{Husband}' PERSON1 REF>

(4) REFの用途:効率の問題

<!DO "SELECT * FROM SCM.TBL1" RESULT=r>
                                 rに大量のデータが入っている
<!SETVAR a r>              aにr全体のデータがコピーされる
                                 時間と大量のメモリが消費される
<!SETVAR b r REF>          bはrと同じデータを指す
                                 時間もメモリもほとんど消費しない