2011-08-14 148 views
0

問:我有一個CFM叫我CFC在CFFORM行動路線: ColdFusion的CFC返回的記錄數

在我的CFC,我有輸出=「假」。我需要將記錄計數發送回我的CFM。當我運行我的CFM並輸入表單信息時,我的查詢成功運行,但它不會回到我的CFM中,因此我可以顯示正確的消息。我只用我的記錄數來得到CFC頁面。有什麼建議麼?謝謝!

+0

你可以張貼一些代碼? –

+0

現在,這是我的 Mia

+0

這是我的 Mia

回答

3

既然沒有代碼,做了一些假設,在這裏你是如何做的事情....

不要指向CFC,指向一個CFM頁中的<cfform>。 (如果省略的動作,它會指向回自己..我喜歡自我參照的表單頁面)

在你的CFC,從查詢返回結果的結構:

<cfquery datasource="#ds#" name="myQuery" result="myResult"> 
    INSERT INTO myTable ..... 
</cfquery> 

然後要麼返回這整個結構,或者只是myResult.recordCount

<cfreturn myResult.recordCount> 

然後在你的頁面CFM,你訪問它,像這樣(假設你使用<cfscript>;如果你正在做類似的基於標記):

recordsAdded = createObject('component','myFolder.myCFC').insertMethod(form); 
+0

createObject方法本身不會返回組件的一個實例,所以insertMethod函數將不可用。你需要做createObject('component','myFolder.myCFC')。init()。insertMethod(form);其中init方法返回「this」 – bittersweetryan

+0

要添加提示,如果您使用的是SQL Server 2k5 +,則可以使用OUTPUT子句實際返回所有插入的數據,包括密鑰。然後,如果需要,可以返回查詢結果以及myQuery.recordCount。 –

+0

@bittersweetryan事實上,除非需要運行額外的構造函數代碼(並且在CF9中,構造函數是隱式的,不需要顯式執行),否則init()不是必需的。 –

0

我改變了CFFORM行這樣的: ....我的形式其餘

然後添加這些行,看看是否提交表單,哪些動作是:

<!--- create object for cfc ---> 

但現在,我的查詢不運行....