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?

<CSP:WHILE>

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 の &lt; エンティティを使用します。CSP ページ・コンパイラは、WHILE のコードを生成する際に、このエンティティを “<” に変換します。

FeedbackOpens in a new tab