6

ColdFusion アプリケーションを C# に変換しています (私は CF n00b です)。

cfquery を実行し、結果を cfloop するスクリプトがあり、現在の行を次の行と比較しようとしているようです。そして、配列の最後を超えて読み取ろうとしないことを確認しようとしているようです。

<cfquery name="qTripLegs" datasource="#sdb#">
   SELECT ...
</cfquery>

<cfloop query="qTripLegs">
    <cfif (customs_stop[currentrow] NEQ "" OR fuel_stop[currentrow] NEQ "") AND recordcount GT currentrow AND departure[currentrow] NEQ arrival[currentrow+1]>

currentrow は 1 ベースのように感じます (currentrow は、最初に cfloop に入ったときに 1 の値を持ちます)。私は正しいですか?coldfusion のドキュメントを調べましたが、これについては何もわかりません。

4

1 に答える 1

21

はい、CF のクエリと配列は 1 ベースです。

CurrentRow 変数と RecordCount 変数はクエリのプロパティです (クエリ ループ内では自動的にスコープが設定されます)。

<cfloop query="QueryName">...</cfloop>1 から までのクエリ*全体をループしQueryName.RecordCountQueryName.CurrentRowインデックスは自動的に適切に入力/増分されます。クエリ ループの前の値は使用されません。

*(cfbreak/etc を使用しない場合)

また、通常は最後までの読み取りを防止する必要はありません (上記のように、クエリ ループで処理されます)。CurrentRow+1 が使用されているため、エラーを回避する必要があります。

于 2013-01-09T00:30:59.723 に答える