我有一個具有多個功能的cfc文件(info.cfc),如下所示。如何從一個cfc文件中的函數查詢中調用另一個CFC文件中的函數?
<cfcomponent output="true" extends="DateFunctions">
<cffunction name="getStatuses" access="remote" returntype="any" output="true" returnformat="plain">
...
</cffunction>
<cffunction name="viewDate" access="remote" returntype="any" output="true" returnformat="plain">
<cfquery name="records">
SELECT
dbo.tickets.Incident,
dbo.tickets.Start_Date,
dbo.tickets.Days_Due
FROM
dbo.tickets
</cfquery>
</cffunction>
</component>
而另一個cfc文件(DateFunctions.cfc)包含一個帶有兩個參數的函數並返回一個日期。 的DateFunctions.cfc文件如下:
<cfcomponent output="true" name="DateFunctions"">
<cffunction name="addBusinessDays" access="remote" returntype="any" output="true" returnformat="plain">
<cfargument name="daysToAdd"
required="yes"
type="numeric"
hint="The number of whole business days to add or subtract from the given date">
<cfargument name="date"
required="No"
type="date"
hint="The date object to start counting from.."
default="#NowDateTime#">
...
... <!--- Perform some tasks --->
<cfreturn Date>
</cffunction>
</cfcomponent>
問:我如何可以調用「addBusinessDays」從查詢內(info.cfc)也產生效果的另一列。
我想我可能已經能夠做一些事情,如:
<cffunction name="viewDate" access="remote" returntype="any" output="true" returnformat="plain">
<cfquery name="records">
SELECT
dbo.tickets.Incident,
dbo.tickets.Start_Date,
dbo.tickets.Days_Due,
(
<cfinvoke component="DateFunctions" method="addBusinessDays" returnVariable="Date">
<cfinvokeargument name="daysToAdd" value="#dbo.tickets.Days_Due#">
<cfinvokeargument name="date" value="#dbo.tickets.Start_Date#">
</cfinvoke>
) AS Due_DATE
FROM
dbo.tickets
</cfquery>
</cffunction>
這應該處理視圖頁面上進行時,HTML生成 –
爲了回答這個問題,我們需要看到addBusinessDays代碼。 –
(編輯)不能以這種方式使用CFC。 ColdFusion服務器和數據庫完全分離。 CF對數據庫對象一無所知,數據庫對CFML一無所知,所以你不能用這種方式來混合這兩種。 ColdFusion的唯一工作就是充當信使。它在執行查詢之前執行它的工作*。 CF會評估任何cfml代碼並將所有內容轉換爲文字。然後它生成一個SQL字符串並將該字符串發送到數據庫以供執行。數據庫完成剩下的工作。 – Leigh