-
- ColdFusion的查询列引用注意事项
- Weather:晴 ,北风 4-5级 ,最高气温8 ℃
- 2005-11-18
目前有这样一个查询结果
<cfquery dataSource="CompanyInfo" name="myQuery">
SELECT FirstName,LastName
FROM Employee
</cfquery>在使用查询列引用一个查询结果myQuery时,ColdFusion的行为不是那么直观。在不使用一个数组索引的前提下,Firstname和myQuery["Firstname"]这两种引用方式会生成不同结果。
下面是这些引用的规则:
(1)如引用myQuery.Firstname,ColdFusion自动将其转换成列中的第一行。例如,下面的代码行将打印单词"Ben":
<cfset myCol = myQuery.Firstname>
<cfoutput>#myCol#</cfoutput>但下面的代码行将显示一条错误消息:
<cfset myCol = myQuery.Firstname>
<cfoutput>#myCol[1]#</cfoutput>(2)如引用Query["Firstname"],ColdFusion不自动将其转换成列中的第一行。举个例子来说,下面的这行代码将造成一条错误消息,指出ColdFusion不能将一个复杂类型转换成简单值:
<cfoutput>#myQuery["Firstname"]#</cfoutput>
类似的,下面的代码将显示名称“marjorie",这是列中第二行的值:
<cfset myCol = myQuery["Firstname"]>
<cfoutput>#myCol[2]#</cfoutput>然而,若进行一次赋值,并要求一个简单值,ColdFusion能将查询列自动转换成第一行的值。例如,下述代码将显示名称“Ben”:
<cfoutput>#myQuery.Firstname#</cfoutput>
<cfset myVar = myQuery["Firstname"]>
<cfoutput>#myVar#</cfoutput>
-
Views(4528) | Comments(2) |
In:
web develop
|
(11/17)
CFLOCK参考说明--范例
[ColdFusion的查询列引用注意事项]的回复
-
子心
于
2006-01-10 09:03:37
发表 |
IP:218.75.106.*
经过CFquery以后返回的myQuery是一个Query类型。
<cfset myCol = myQuery.Firstname>
<cfoutput>#myCol#</cfoutput>
是能够正常输出的,但是
<cfset myCol = myQuery.Firstname>
<cfoutput>#myCol[1]#</cfoutput>
你已经cfset过了,myCol已经成为了string变量,你想把它列为数据类型,当然是不成的。#myQuery["Firstname"]#该值应该是一个Array所以无法正确输出也是正常的,如果你换成#myQuery["Firstname"][1]#试试呢?那就可以了哦。
至于你最后一个问题,通过赋值输出正确,是因为你已经将<cfset myVar = myQuery["Firstname"]>给了myVar,而它是将数组默认赋值了,所以你才能输出myVar。
-
柠檬园主
于
2006-01-10 16:48:38
发表 |
IP:59.44.76.*
- 嘎嘎,多谢子心指点,好长时间没关注CF了,趁最近的一次机会,第一次把CF实践一把,到时肯定会问题百出了,但也就有更大的机会把CF学会了
