标签: cfquery

当需要使用var作用域时,如何在n-recordset上使用查询查询UNION?

我希望能够向UNION查询未知数量的记录集.但是,在记录集名称中不允许执行查询查询点或括号时.

例如,这失败了:

<cfquery name="allRecs" dbtype="query">
    SELECT * FROM recordset[1]
    UNION
    SELECT * FROM recordset[2]
</cfquery>
Run Code Online (Sandbox Code Playgroud)

使用动态变量名称,例如"recordset1"工作,但这是在一个函数中,需要变量范围,所以我不能动态地建立变量名称而不会在持久化对象中产生内存泄漏.

还有其他想法吗?

coldfusion cfquery qoq

5
推荐指数
1
解决办法
3166
查看次数

如何在ColdFusion中覆盖SQL清理

我有一个不幸的任务,清理一堆旧的ColdFusion代码.查询到处都是,我正在努力将它们全部转移到普通的CFC上以便于维护.

我遇到了一个问题,因为cfquery它会自动将单引号转换为双引号.我该如何覆盖这种行为?

更具体的信息如下.


所以这是我开始的查询:

<cfquery name="getObjectInfo" datasource="#BaseDS#">
  SELECT groupName AS lastname, '[Group]' AS firstname
  FROM   groups
  WHERE  groups.group_id = #objectreference_id#
</cfquery>
Run Code Online (Sandbox Code Playgroud)

这里奇怪的是文字被"选中",因为我们希望它被显示的方式(再次,我没有写这个,我只是想把它清理一下).所以在common函数中,select子句有一个可选参数:

  <cffunction name="fSelGroup" access="public" returntype="query"
              hint="Returns query selecting given group.">

    <cfargument name="intGroupID" type="numeric" required="true"
                hint="ID of group to be returned." />
    <cfargument name="strSelectAttributes" type="string" required="false"
                hint="Attributes to be selected in query"
                default="*" />

    <cfquery name="getObjectInfo" datasource="#Application.DataSource#">
      SELECT #Arguments.strSelectAttributes#
      FROM   Groups
      WHERE  Group_ID = #Arguments.intGroupID#
    </cfquery>

    <cfreturn getObjectInfo />

  </cffunction>
Run Code Online (Sandbox Code Playgroud)

这是问题:当我传入"GroupName AS LastName, '[Group]' AS FirstName" …

sql coldfusion sanitization cfquery

5
推荐指数
2
解决办法
2628
查看次数

如何在coldfusion中使用CFQuery执行2个或更多插入语句?

是否可以使用执行2插入或更新语句cfquery

如果有,怎么样?

如果不是,通过只打开一个到DB的连接,在Coldfusion中执行多个查询的最佳方法是什么.

我想我们每次打电话cfquery都打开新的连接数据库

coldfusion cfquery

5
推荐指数
2
解决办法
8398
查看次数

ColdFusion中的日期显示问题

当我在TOAD中重新启动Date字段时,它显示为' 1/18/2038 9:14:07 PM',

但是当我使用cfquery在Coldfusion中重新使用并显示使用时,我在屏幕上得到的日期就像' 2038-01-18 21:14:07.0'.

有谁知道为什么它以不同的格式显示?反正我们可以让它像TOAD格式一样显示吗?

我正在使用Oracle 10g DB和coldfusion 8

coldfusion datetime cfquery

5
推荐指数
2
解决办法
3062
查看次数

在cfquery中使用cachedwithin attibute

在cfquery中使用cachedwithin属性时,它如何将查询存储在内存中.它是否仅按您分配给查询的名称存储它?例如,如果在我的索引页面上我缓存了一个小时的查询并将其命名为getPeople,则在不同的页面上使用相同名称的查询(或相同的页面)使用缓存的结果或使用更好的逻辑判断它是否是同一个查询?

另外,如果查询中有变量,缓存是否会考虑变量的值?

coldfusion cfquery coldfusion-8

5
推荐指数
1
解决办法
4063
查看次数

如何获取ColdFusion 9中页面上运行的所有查询的列表

我想在Application.cfc onRequestEnd函数中添加一些代码,如果某个应用程序变量标志打开,则会将查询sql和执行时间记录到数据库表中.这部分相对容易,因为ColdFusion将sql和执行时间作为查询结构的一部分返回.

但是,这个网站可能接近1000页,修改所有这些页面是不现实的.所以我想在onRequestEnd函数中以编程方式完成这项工作.为了做到这一点,我需要以某种方式获取在页面上执行的所有查询的列表,这就是我难倒的地方.

如何获取当前页面上已执行的所有查询的名称列表?这些查询出现在模板的变量范围中,但是其中还有无数的其他变量,我不确定如何轻松地循环并确定哪个是查询.

任何帮助,将不胜感激.

coldfusion cfc cfquery application.cfc coldfusion-9

5
推荐指数
1
解决办法
1791
查看次数

使用CFQuery检索长文本(CLOB)

CFQuery用来从Oracle DB中检索CLOB字段.如果CLOB字段包含小于~8000的数据,那么我可以看到<CFQuery >检索到的值(<cfdump>o/p),但是如果CLOB字段大小中的值超过8000个字符,那么它不会检索该值.在<cfdump>我可以看到检索为"空字符串"查询虽然Oracle数据库中存在的价值.

我在CFadim控制台中使用Oracle驱动程序,启用"启用长文本检索(CLOB)".和'启用二进制大对象检索(BLOB)."

将"长文本缓冲区(chr)"和"Blob缓冲区(字节)"值设置为6400000

有任何建议来检索全文吗?

coldfusion cfquery clob

5
推荐指数
1
解决办法
4191
查看次数

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

我正在将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文档,但我没有看到任何相关内容.

coldfusion cfquery coldfusion-9

5
推荐指数
1
解决办法
2万
查看次数

我们如何在cfquery结果的中间添加一个新行?

我有来自cfquery的查询结果集.我只想在特定的行号后面添加一个新的.但是每次尝试在最后插入行时都会尝试.

有什么办法可以在查询中间插入行吗?

 <cfquery datasource="cse" name="abc">
    select * from grade 
 </cfquery>

 <cfset i = 0>
 <cfloop query="abc">
   <cfset i = i+1>
   <cfif i eq 2>
      <cfset queryAddRow(abc)>
   </cfif>  
 </cfloop>
Run Code Online (Sandbox Code Playgroud)

coldfusion cfquery coldfusion-10

5
推荐指数
1
解决办法
1740
查看次数

如何使用ColdFusion在查询变量中获取特定的Row?

请使用以下查询示例:

<cfquery name="Test" Datasource = "TestDB">
    Select * from Table_Test
</cfquery>
Run Code Online (Sandbox Code Playgroud)

假设"Test"查询返回10行.我想在当前时间显示单行.

注意:我不想更改SQL语句.

coldfusion cfquery

5
推荐指数
2
解决办法
415
查看次数