当cfloop中没有指定索引时,当前的ColdFusion初始值

Ric*_*der 5 coldfusion cfquery coldfusion-9

我正在将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]>
Run Code Online (Sandbox Code Playgroud)

感觉currentntrow是从1开始的(当它首次进入cfloop时,currentntrow的值为1).我对么?我查看了coldfusion文档,但我没有看到任何相关内容.

Pet*_*ton 19

是的,CF中的查询和数组是基于1的.

CurrentRow和RecordCount变量是查询的属性(在查询循环内,它们是自动作用域的).

<cfloop query="QueryName">...</cfloop>将循环遍历整个查询*,从1到QueryName.RecordCount,并且QueryName.CurrentRow索引会自动填充/递增.不使用查询循环之前的值.

*(除非使用cfbreak/etc)

另外要指出的是,通常不需要阻止读取结束(如上所述,查询循环处理它),这只是因为正在使用CurrentRow + 1来避免错误.