查询列的CFDump不显示所有值

时间:2013-08-08 15:49:58

标签: coldfusion coldfusion-8

以下QoQ的倾销结果非常好:

<cfquery datasource = "XX.XX.X.XX" name="master2">
   SELECT  DATE(Timedetail) as FIRSTCONN
           , count(Timedetail) as FIRSTOccurances
           , EVENTS 
   FROM    MyDatabase
   WHERE   EVENTS = "FIRST" GROUP BY FIRSTCONN 
<!--- LIMIT 0,10 --->;
</cfquery> 

<cfdump var="#master2#">

<cfquery dbtype="query" name="detail2">
    SELECT  *
    FROM    master2 
    WHERE   FIRSTCONN  >= <cfqueryparam value="#startdate#" cfsqltype="cf_sql_date"> 
    AND     FIRSTCONN  <  <cfqueryparam value="#enddate#" cfsqltype="cf_sql_date">;
</cfquery>  

Dumping Result: <cfdump var="#detail2#"><cfabort>

但是,当我尝试在QoQ上使用以下检查时:

 Dumping Result: <cfdump var="#detail2.FIRSTCONN#"><cfabort>

我没有看到FIRSTCONN值的完整列表。相反,我只看到一行:

  Dumping Result: {ts '2013-06-29 00:00:00'}

理想情况下,我应该在浏览器中看到所有FIRSTCONN的列表,不应该吗?

2 个答案:

答案 0 :(得分:5)

您正在查看coldfusion的默认行为。输出或转储queryname.fieldname时,如果未指定行号,则从第一行获取值。如果您想查看所有行,您的选择是:

  1. 查看值列表
  2. 输出/转储整个查询
  3. 为该列执行q的另一个q和cfdump它。
  4. 将cfoutput与查询属性一起使用,只输出该字段

答案 1 :(得分:1)

如果您希望生成与转储查询时cfdump相同的结构化输出,我有两个建议:


我的第一次倾向:

<cfdump var="#ListToArray(ValueList(queryName.columnName))#" />

这显然是丹的建议的一个非常小的延续。


第二个适用于CF 8+,它是

正是你想要的:

<cfdump var="#queryName#" show="columnName"/>


您可以通过 show 属性指定要在输出中显示的列,也可以通过为隐藏属性指定值来隐藏特定列。

CFAbort in CF Docs

当然,这篇文章已有近18个月的历史,但这可能会帮助那些偶然发现此页面的人。