<CSP:WHILE>
Synopsis
<CSP:WHILE>...</CSP:WHILE>
属性
一般的な属性
属性 | 説明 | 値 |
---|---|---|
CONDITION | 各繰り返しの後に評価されるサーバ側の式。 式が True の場合、ループが再度繰り返されます。 | サーバ側の式 |
COUNTER | 繰り返し毎に自動的にインクリメントされるローカル変数名。 | 有効な変数名 |
CURSOR | 埋め込み SQL と共に使用。次に繰り返す行を取得する SQL カーソル。 | 有効な SQL カーソル名 |
INTO | 埋め込み SQL と共に使用。次の行の SQL FETCH に対する、コンマで区切られた INTO リスト。行のデータを取得する変数を指定します。 | コンマで区切られた変数リスト |
概要
CSP:WHILE タグは、CONDITION 属性で指定されるサーバ側の式が True である限り、タグの内容を繰り返し実行します。 繰り返しのたびに、COUNTER 属性で指定されたローカル変数がインクリメントされます。カウンタ変数は、ループの前に 0 に初期化され、繰り返しの開始時にインクリメントされます。カウンタ属性が指定されていない場合、カウンタは生成されません。CSP:WHILE タグは、SCRIPT LANGUAGE=SQL CURSOR= タグを使用して、埋め込み SQL に定義されたカーソルのループを実行するために使用することもできます。
CSP WHILE ループの基本構造は、以下のとおりです。
<CSP:WHILE attributes>
content
</CSP:WHILE>
attributes は、CSP:WHILE タグの属性 (前述) で、content はループが繰り返されるたびに表示される内容です。
WHILE ループ条件
WHILE ループの各繰り返し終了後、条件が評価され、ループを再度実行するかどうかが判定されます。条件が True の場合、再度ループが実行され、条件が False と評価された場合、ループは終了します。繰り返しに関係する条件は、CSP:WHILE タグの CONDITION 属性を使用して指定します。
<CSP:WHILE CONDITION="cond">
cond は、各繰り返しの最後に評価される式です。
各 CSP:WHILE タグには必ず CONDITION 属性を指定します。
WHILE ループ内のカウンタ
WHILE ループは、ローカル変数内にカウンタを持つことができます。このカウンタは、ループが繰り返されるごとに 1 ずつインクリメントされます。カウンタとして使用されるローカル変数は、COUNTER 属性で指定します。
<CSP:WHILE CONDITION="cond" COUNTER="count">
count は、カウンタ名です。初期値は常に 0 です。
COUNTER 属性を指定しない場合は、WHILE ループはカウンタ変数を持ちません。
WHILE ループ内での SQL の使用
<SCRIPT> タグを使用して、静的な SQL カーソルを定義し、WHILE ループを使用して、クエリ結果を表示できます。
例えば、以下のコードは、query という名前の静的な SQL カーソルを定義します。
<SCRIPT LANGUAGE=SQL CURSOR="query">
SELECT Name,SSN FROM Sample.Person ORDER BY Name
</SCRIPT>
以下のように CSP:WHILE タグを使用して、このカーソルを繰り返すことができます。
<CSP:WHILE CURSOR="query" INTO="name,ssn">
Name: #(name)#, SSN: #(ssn)# <BR>
</CSP:WHILE>
CURSOR 属性は、<SCRIPT> タグを使用して定義された SQL カーソルの名前を指定します。一方、INTO 属性は、コンマで区切られたローカル変数のリストを指定します。このリストには、クエリによって検索された列の値が、検索された順に配置されます。
<CSP:WHILE> の例
以下の単純な WHILE ループは、ループが繰り返されている間、カウンタ値を表示します。
<UL>
<CSP:WHILE COUNTER="i" CONDITION="i<10">
<LI>The value of the counter is #(i)#.
</CSP:WHILE>
</UL>
HTML は、属性値内で <、>、& 記号を使用できないため、< (より小さい) 演算子を表す場合、HTML の < エンティティを使用します。CSP ページ・コンパイラは、WHILE のコードを生成する際に、このエンティティを “<” に変換します。