我可以通过Coldfusion中的SQL查询从函数返回文本形式的列

时间:2019-05-29 16:33:32

标签: coldfusion cfquery

我想在CF中编写一个函数,该函数具有返回多列的查询。我研究并阅读,仅能找到带有sql查询的函数示例,仅返回结构的表视图。

我该如何使用SQL查询在CF中编写函数并以文本格式输出每一列

我一直在搜索它,并在教程网站上浏览,没有运气

<cffunction name="queryListEmployee" returntype="query" output="false">
<cfargument name="EMPID" type="numeric" default="1"/>
<cfset var listEmployee = ""/>
    <cfquery name="local.listContractors" datasource="DB">
        SELECT E.FIRSTNAME, E.LASTNAME
        FROM EMPLOYEE E
        WHERE E.ID = <cfqueryparam value="#arguments.EMPID#" cfsqltype="cf_sql_decimal" scale="0"/>
    </cfquery>
<cfreturn local.listEmployee/>

我希望能够输出queryListEmployee.firstnamequeryListEmployee.lastname之类的列名

1 个答案:

答案 0 :(得分:7)

您的想法正确。只是一些调整:

<cffunction name="getEmployeeByID" returntype="query" output="false">
    <cfargument name="EMPID" type="numeric" default="1"/>
    <cfquery name="local.employee" datasource="DB">
        SELECT E.FIRSTNAME, E.LASTNAME
        FROM EMPLOYEE E
        WHERE E.ID = <cfqueryparam 
                          value="#arguments.EMPID#" 
                          cfsqltype="cf_sql_integer"/>
    </cfquery>
    <cfreturn local.employee/>
</cffunction>

然后按如下所示调用此函数:

<cfset qEmployee = getEmployeeByID(1)>

并像这样输出数据:

<cfoutput query="qEmployee">
    <li>#qEmployee.FIRSTNAME# #qEmployee.LASTNAME#</li>
</cfoutput>

此函数将仅返回一条记录。您可以搜索并找出如何动态调整搜索条件以返回多个记录。

您可以查看http://www.learncfinaweek.com/来了解更多ColdFusion的基础知识。