Ich habe eine cfc-Datei (info.cfc) mit mehreren Funktionen, wie unten gezeigt.Wie kann ich eine Funktion in einer anderen CFC-Datei innerhalb einer Abfrage einer Funktion in einer cfc-Datei aufrufen?
<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>
Und die andere cfc-Datei (DateFunctions.cfc) die eine Funktion mit zwei Argumenten und Rückkehr ein Datum enthält. Die DateFunctions.cfc Datei ist wie folgt:
<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>
Frage: Wie kann ich „addBusinessDays“ aus der Abfrage in (info.cfc) auch eine andere Spalte der Ergebnisse produzieren aufzurufen.
Ich dachte, ich konnte vielleicht wie etwas tun:
<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>
Diese Verarbeitung sollte auf Sicht Seite getan werden, wenn HTML –
Um erzeugt wird, dies zu beantworten, müssen wir den Code für addBusinessDays sehen. –
(Bearbeiten) CFCs können nicht auf diese Weise verwendet werden. Der ColdFusion-Server und die Datenbank sind vollständig voneinander getrennt. CF kennt nichts von Datenbankobjekten, und die Datenbank weiß nichts über CFML, also können Sie die beiden nicht so kombinieren. Die einzige Aufgabe von ColdFusion ist es, als Bote zu fungieren. Es macht seine Arbeit * bevor * die Abfrage jemals ausgeführt wird. CF wertet jeden cfml-Code aus und konvertiert alles in Literale. Es erstellt dann eine SQL-Zeichenfolge und sendet diese Zeichenfolge zur Ausführung an die Datenbank. Die Datenbank erledigt den Rest. – Leigh