我可以从Coldfusion中的sql查询函数以文本形式返回列吗

JNe*_*tne 0 coldfusion cfquery

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

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

我一直在搜索它,并在教程网站上寻找运气,

<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/>
Run Code Online (Sandbox Code Playgroud)

我希望能够输出列名称,例如queryListEmployee.firstnamequeryListEmployee.lastname

Adr*_*eno 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>
Run Code Online (Sandbox Code Playgroud)

然后像下面这样调用此函数:

<cfset qEmployee = getEmployeeByID(1)>
Run Code Online (Sandbox Code Playgroud)

并像这样输出数据:

<cfoutput query="qEmployee">
    <li>#qEmployee.FIRSTNAME# #qEmployee.LASTNAME#</li>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

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

您可以查看http://www.learncfinaweek.com/以获得更多ColdFusion基础知识。