Coldfusion 查询断列结构

标签 coldfusion cfml cfquery

根据我过去的经验,冷融合查询的列可以像二维数组一样被引用。有时我也会遇到这个问题。

  1. 从电子表格创建查询
  2. 将列名放入数组
  3. 在尝试访问该行时仅获取第一个元素
  4. 必须使用解决方法

<p></p>

<pre><code>//imports is a query object after this function
var imports = convertSpreadsheetWOHeaders(spreadsheet, 1);
//this is used to give name values in the json struct, not to access the query columns
var jsonHeaders = ListToArray("number,constructiontype,description,site_address,parcel,permit_date,note_Applicant,note_Contractor,valuation,note_Bld_Fees,note_Other_Fees");
//this gives me ["col_1","col_2","col_3",,,etc]. used to access query columns
var columnHeaders = imports.getColumnNames();
writeDump(imports[columnHeaders[1]]);
writeDump(imports);
</code></pre>

<p></p>

output of the writeDump

我只剩下第一列中的第一个元素。我当然明白:

Message: You have attempted to dereference a scalar variable of type class java.lang.String as a structure with members.

尝试执行此操作时:

structInsert(jsonStruct,jsonHeaders[j],imports[columnHeaders[j]][i]);

但是,这有效:

 writeDump(ListToArray(ArrayToList(imports[columnHeaders[1]],'|'),'|',true));

converted to list then array

我首先转储导入["col_1"],并且只得到第一个元素。 然后,我像上图所示那样转储 ListToArray(ArrayToList(imports["col_1"])) ,它为我提供了整列。

为什么我一开始就无法正确访问该列?

最佳答案

真正的问题:

我最初尝试将 jsonHeaders 列表作为数组访问,而不对其执行 ListToArray() 。之后我的功能就起作用了。

但是。下一部分很有帮助。

当尝试访问查询对象时,执行queryObject["columnName"]被视为queryObject["columnName"][1]的快捷方式,因此coldfusion只会给你第一个元素。

但是当我说 ListToArray(ArrayToList()) 时,coldfusion 发现 ArrayToList 必须接受数组,因此会出现异常,并且该列作为数组返回。

要将列重新作为数组使用,您可以执行以下操作

ListToArray(ArrayToList(query["column"]));
ListToArray(valueList(query.column));
valueArray(query, "column");

关于Coldfusion 查询断列结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972706/

相关文章:

coldfusion - 如何使用 CFQUERY 从 Table2 中为 Table1 中的每一项获取一个结果?

coldfusion - 比较 Coldfusion cfquery 中的两个字符值

jquery - 如何在拖动 Jquery slider 时显示舍入值?

ajax - ColdFusion:使用 AJAX 调用组件,从 View 源中隐藏?

cfml - CF 代码会在常规服务器上运行吗?

coldfusion - 是否可以在 ColdFusion 中动态生成查询名称?

sql - Coldfusion SQL 插入循环

coldfusion - cfdocument 问题 - cfdocument 没有正文

coldfusion - 在 ColdFusion 中使用 like 运算符的 cfqueryparam

mysql - 在 Coldfusion CFQUERY 中按分钟而不是按天比较日期时间值