gpt4 book ai didi

Coldfusion CFC - 从函数返回的值不是查询类型?

转载 作者:行者123 更新时间:2023-12-04 00:18:49 25 4
gpt4 key购买 nike

参加晚会比较晚,我正试图过渡到使用 CFC 以简化事情。在这个阶段,我只是试图找到我的脚并理解它们 - 使用 CFWACK 9 作为指导。

然而,我的第一次尝试让我难住了!

这是我的 CFC 中的内容;

<cffunction name="listBlogEntries" returntype="query" output="false" 
access="remote" hint="Find all blog entries by blogid, sorted by id desc">

<cfargument name="blogid" required="true" default="24">
<cfset var getBlogEntries = "">

<cfquery name="getBlogEntries">
SELECT ID, entry_title
FROM blog_entries
WHERE blogID='#ARGUMENTS.blogid#'
ORDER BY ID DESC
LIMIT 10
</cfquery>
</cffunction>

<cffunction name="printBlogEntries" returntype="void" access="remote"
hint="Lookup blog entries and return formatted">

<cfargument name="blogid" required="true" default="24">
<cfset var qBlogEntries = listBlogEntries(ARGUMENTS.blogid)>
<cfoutput query="qBlogEntries">
<h1>Entry ID: #qBlogEntries.ID#</h1>
<h3>Entry Title: #qBlogEntries.entry_title#</h3>
</cfoutput>

<cfreturn>

</cffunction>

还有我的调用 .cfm 页面;
<cfparam name="blogid" default="24" >

<cfinvoke component="td"
method="printBlogEntries"
searchString="#blogid#"
returnvariable="blogentries" >

<cfoutput>#blogentries#</cfoutput>

返回的错误是;
The value returned from the listBlogEntries function is not of type query. 

如果我手动运行查询并执行 cfdump,一切看起来都应该如此,所以我显然在 cfc 中做错了什么。但是,现在的方式几乎是 CFWACK 书中给出的示例的复制品。

指针将不胜感激(就像任何关于该主题的推荐阅读一样!)

最佳答案

在您的函数“listBlogEntries”中,您有一个名为“getBlogEntries”的查询。您收到错误是因为此函数目前没有返回任何内容。只需添加一个 cfreturn查询后。

此外,如果您使用的是 ColdFusion 9 或更高版本,则可以取消 <cfset var getBlogEntries = "">只需使用函数局部变量范围“local”。它做同样的事情。

<cffunction name="listBlogEntries" returntype="query" output="false"
access="remote" hint="Find all blog entries by blogid, sorted by id desc">

<cfargument name="blogid" required="true" default="24">
<cfquery name="local.getBlogEntries">
SELECT ID, entry_title
FROM blog_entries
WHERE blogID = <cfqueryparam value="#ARGUMENTS.blogid#"
cfsqltype="cf_sql_integer">
ORDER BY ID DESC
LIMIT 10
</cfquery>

<cfreturn local.getBlogEntries>
</cffunction>

和@Cory,他在他的组件中使用了两个函数,因为很可能,多个其他函数需要由 listBlogEntries() 生成的查询。

关于Coldfusion CFC - 从函数返回的值不是查询类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com