惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
U
Unit 42
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
I
InfoQ
WordPress大学
WordPress大学
H
Help Net Security
D
Docker
B
Blog
腾讯CDC
A
About on SuperTechFans
Recent Announcements
Recent Announcements
雷峰网
雷峰网
有赞技术团队
有赞技术团队
C
Check Point Blog
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

Java不加糖的Blog

假设, AI 把我代替的那一刻真的到来 | szhshp 的第三边境研究所 小傻瓜都能懂的 AstrBot QQ 机器人集成 MCP 功能实战指南 | szhshp 的第三边境研究所 《智人之上: 从石器时代到 AI 时代的信息网络简史》阅读笔记 | szhshp 的第三边境研究所 iPadOS 26 无法设置空间场景图片壁纸的解决方法 | szhshp 的第三边境研究所 《一路云海》(终) | szhshp 的第三边境研究所 《一路云海》(四): 如何不按套路旅行 | szhshp 的第三边境研究所 《一路云海》(三): In Ya Mellow Tone | szhshp 的第三边境研究所 《一路云海》(二): 关西世博参观纪实 | szhshp 的第三边境研究所 《一路云海》(一): 新的征程 | szhshp 的第三边境研究所 2025 大阪世博会 [ 3 天前-先到先得 ] 阶段 场馆预约必中独家攻略 | szhshp 的第三边境研究所 Hackathon 随想 | szhshp 的第三边境研究所 一杯双皮奶 | szhshp 的第三边境研究所 Armbian + CasaOS + NAS 配置指南 | szhshp 的第三边境研究所 Docker 构建镜像报错: error getting credentials - err: exit status 1, out: `` | szhshp 的第三边境研究所 Disqus RIP! 论过高的维护成本如何治疗固执的坏习惯 | szhshp 的第三边境研究所 炸弹猫桌游变体规则 | szhshp 的第三边境研究所 《小岛经济学》阅读笔记 | szhshp 的第三边境研究所 《金钱心理学》阅读笔记 | szhshp 的第三边境研究所 为知笔记 RIP: 迁移剩余的笔记 | szhshp 的第三边境研究所 2025 博客第十年展望 - 再见我的过去 | szhshp 的第三边境研究所 我在独立游戏里面致敬的作品 | szhshp 的第三边境研究所 《How to make thing faster》阅读笔记 | szhshp 的第三边境研究所 《The Art of Clean Code》阅读笔记 | szhshp 的第三边境研究所 《Clean Architecture: A Craftsman Guide to Software Structure and Design》阅读笔记 | szhshp 的第三边境研究所 《How AI Works》阅读笔记 | szhshp 的第三边境研究所 游戏策划废案 - Project Uranus | szhshp 的第三边境研究所 游戏策划废案 - Project X | szhshp 的第三边境研究所 人生第一款独立游戏开发复盘 | szhshp 的第三边境研究所 Trap of Life | szhshp 的第三边境研究所 wireguard折腾记录
ColdFusion - Basic - cfquery | szhshp 的第三边境研究所
2019-01-01 · via Java不加糖的Blog

Meta

目录

Basic

<CFQUERY name="local.getBaBusList" datasource="#Request.CompanyEHS_ODBC#">
   SQL...
</CFQUERY>

注意name不要加井号

cfqueryparam

<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 的时候参数会以列表的形式出现

ValueList相关

有时候如果需要将某些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>

关于recordcount

使用name的参数作为变量即可2016-01-13 14:58:16 星期三

<CFQUERY name="local.getBaBusList" datasource="#Request.CompanyEHS_ODBC#">
   SQL...
</CFQUERY>
……
#local.getBaBusList.recordcount#

动态输出 dynamic output for cfquery

注意输出时的循环不能使用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]));
  }
}

按列顺序输出 cfloop query with group

  • 仅在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>