queryEach或.each()在CF 11上不起作用,为什么?

时间:2018-10-17 17:32:31

标签: coldfusion coldfusion-11 cfquery

由于我是该公司的新成员,因此我试图以更好的形式搜索Google的Coldfusion中的“查询”,并且我试图从CF中获取更多信息

这是我的尝试:

我的模型:

<cffunction hint="Foo" name="Foo" access="public" returntype="query">
    <!--- Argumentos --->
    <cfargument hint="Something" name="ArgComBus" type="string" required="no" default="">
    <cfargument hint="Other thing" name="ArgPar" type="string" required="no" default="">

    <cfscript>
        queryService = new Query();
        queryService.setSql("
            SELECT
                column1,
                column2,
            FROM
                tab_bar
            WHERE
                1=1
                #arguments.ArgComBus#
        ");
        queryService.setDataSource(session.Dsn);

        if(Len(Trim(arguments.ArgPar))){
            Evaluate(arguments.ArgPar);
        }
        queryResult = queryService.execute();
        qBus = queryResult.getResult();
    </cfscript>


    <cfreturn qBus>
</cffunction>

我的脚本

<cfscript>
arrFoo = arrayNew(1);

qFoo = this.Foo(
    ArgComBus = " AND column1 = #variables.bar# ");

// First Attempt - The each method was not found.
qFoo.each(function (foo) {
    arrFoo.append(foo);
});

// Second Attempt - Variable QUERYEACH is undefined.
queryEach(qFoo, function (foo) {
    arrFoo.append(foo);
});

writeDump(arrFoo);
</cfscript>

我的服务器转储

InstallKit  Native Windows
appserver   Tomcat
productlevel    Developer
productname ColdFusion Server
productversion  11,0,05,293506
rootdir C:\CFusion11\cfusion

我什至在查询变量getMetaData()上使用了qFoo,返回的是数组……所以当我尝试使用类似的东西(试图在查询中转换数组?)

cfQuery = createObject("java", "coldfusion.sql.QueryTable").init(qFoo); 

.each()queryEach()相同的答案...我什至尝试使用arrayEach(),但返回的对象是coldfusion.sql.QueryTable而不是数组

1 个答案:

答案 0 :(得分:6)

您正在运行ColdFusion 11。

直到ColdFusion 2016才添加ngOnInit() { this.route.params.subscribe(params => console.log(params)); } 函数:

最初,我曾发布过queryEach()成员函数在Adobe ColdFusion 11中不可用的消息。阿基坦在评论中指出它实际上是正确的。我错误地引用了{{1} }适用于集合的Lucee函数。与此问题相关的each()函数实际上是Each()标签函数的脚本版本。在ColdFusion 11中可用(实际上是在ColdFusion 10中添加的)。抱歉造成混乱。

文档可能有误。除了在ColdFusion 2018下,我无法使用该功能作为Each()。对于ColdFusion 11,我只能使其在ArrayEach()下工作。

以下是一些有关如何在ColdFusion 11中循环查询的示例(从cfdocs借来的):

Each()

我在TryCF.com上为您创建了要点,因此您可以查看此代码的运行情况,并根据需要进行尝试。 Just click here to run the code