2011-08-14 150 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 ---> 

但现在,我的查询不运行....