ColdFusion - Basic - cfquery
2019-01-01
<CFQUERY name="local.getBaBusList" datasource="#Request.CompanyEHS_ODBC#"> SQL…… </CFQUERY>
注意 name 不要加井号
<cf_queryparam list="true" separator="|" value="#Attributes.limitToBusinessList#" />
默认分割符是, 逗号分隔 因此特殊情况需要特殊设置 如果遇到这样的列表
GE OneEHS|GE OneEHS|GE Oil and Gas|GE OneEHS
写成
separator="|"
使用时间作为 cfqueryparam 参数时, 简单的时间可以使用字符串
<cfqueryparam cfsqltype="cf_sql_char" value="#form.datadate#">
但是更好的解决方法:
#CreateODBCDateTime(datadate)#
对于
<cf_queryparam list="true" separator="|" cfsqltype="cfsqlvarchar" value="#Attributes.limitToBusinessList#" />
则相同于 SQL 中
N'here is a string'
的形式
此外使用 cf_queryparam
当 dump 的时候会将参数放到 SQL 详细中
而使用 cfqueryparam
的时候参数会以列表的形式出现
有时候如果需要将某些 Result 作为 Query 的条件, 就需要用到 ValueList
例如需要使用如下代码中的 Top5Site 作为搜索条件
<cfquery name="Top5Site" datasource="#ODBC#"> select top(5) s.location Site FROM …… </cfquery>
有时候 SQL 里面会使用大括号作为搜索名
<cfquery name="q" datasource="CC_TEST"> select top(10) [CONTACTID] from ltbContact; </cfquery>
CF: 一般搜索结果会有很多行, 因此只需要使用循环输出
<cfloop index="i" from="0" to="10"> <cfoutput> #i# - #q['CONTACTID'][i]#<br> </cfoutput> </cfloop>
如果只需要输出第一行就只需要把第二个 index 改为 1
<td>#bigquery['complete air emission inventory (all sources)'][1]#</td>
使用 name 的参数作为变量即可 2016-01-13 14:58:16 星期三
<CFQUERY name="local.getBaBusList" datasource="#Request.CompanyEHS_ODBC#"> SQL…… </CFQUERY> …… #local.getBaBusList.recordcount#
注意输出时的循环不能使用 loop in list
query[col][row]
for (var index = 1; index lte arguments.QuerySuperSet.RecordCount; index++) { if (QuerySuperSet["orgname"][index] != "" && QuerySuperSet["suborg"][index] != "!" && QuerySuperSet["location"][index] == "") { arrayAppend(labelArray, QuerySuperSet["orgname"][index] & ' / ' & QuerySuperSet["suborg"][index]); arrayAppend(sumArray, val(QuerySuperSet[arguments.ColumnName][index])); } }
- 仅在 CF11 之后版本有效
- 注意最后一层我们是按照 Loc 输出,loc 还是要出现在 loop 的 group 里面
- 必须使用已经排序好的 Query
<cfloop query="sites" group="orgname"> <optgroup label="#sites.orgname#"></optgroup> <cfloop group="suborg"> <optgroup label="#sites.suborg#"> <cfloop group="location"> <option value="#sites.siteid#" orgId="#sites.org#">#sites.location#</option> </cfloop> </optgroup> </cfloop> </cfloop>
关于本文
文章标题 | ColdFusion - Basic - cfquery |
发布日期 | 2019-01-01 |
文章分类 | Tech |
相关标签 | #ColdFusion |
留言板
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER