如何从ColdFusion中的存储过程返回的Query表中进行选择?

时间:2013-06-06 14:04:37

标签: loops select stored-procedures coldfusion

我有一个存储过程,它返回一堆查询,我需要根据两列或多列中的信息选择一些查询。我之前使用过cfloop query ="resultName",但这次我不能简单地遍历它。这甚至可能吗?

代码:

<!--- Run procedure to generate result set/query --->
<cfstoredproc datasource="#XXX#" procedure="XXX">
    <cfprocparam type="In" value="12" cfsqltype="CF_SQL_INTEGER">
    <cfprocparam type="In" value="3" cfsqltype="CF_SQL_INTEGER">
    <cfprocparam type="In" value="1" cfsqltype="CF_SQL_BIT">

    <cfprocresult name="QueryU">
</cfstoredproc>

QueryU由一堆查询组成,我希望根据其他两个列值选择一个列值。

更新:

问题是,“如何从现有查询中选择记录子集?”

2 个答案:

答案 0 :(得分:2)

根据the Adobe documentation,您需要为要发回的每个结果集列出cfprocresult

<cfprocresult name="query1">
<cfprocresult name="query2">
<cfprocresult name="query3">

然后,您可以在输出每个查询时引用所需的字段。

答案 1 :(得分:0)

解决方案是使用查询查询。

以下是基于the documentation的示例:

<!--- Run procedure to generate result set/query --->
<cfstoredproc datasource="#XXX#" procedure="XXX">
    <cfprocparam type="In" value="12" cfsqltype="CF_SQL_INTEGER">
    <cfprocparam type="In" value="3" cfsqltype="CF_SQL_INTEGER">
    <cfprocparam type="In" value="1" cfsqltype="CF_SQL_BIT">

    <cfprocresult name="QueryU">
</cfstoredproc>

<!--- Run QoQ to get a subset of the results (dbtype=query, no data source) --->
<cfquery dbtype="query" name="detail"> 
    SELECT Emp_ID, FirstName, LastName
    FROM   QueryU
    WHERE  LastName =<cfqueryparam value="#LastNameSearch#" 
                 cfsqltype="cf_sql_char" maxLength="20">
</cfquery>