我正在尝试写入同一个数据库中的两个不同的表。在一个带有两个 CFQUERY 的 CFTRANSACTION 中,第一个 CFQUERY 将正确插入,但第二个(也是 INSERT)只是跳过。没有抛出错误,我可以看到第一个表中的数据,并且注释掉第一个 INSERT 将允许第二个按需要通过。
我的代码的简化版本是:
<cffunction name="insertReport">
<cfset var strReturn="">
<cftransaction>
<cftry>
<cfquery name="updateTable1" datasource="DB1">
...
</cfquery>
<cfquery name="UpdateTable2" datasource="DB1">
...
</cfquery>
<cfcatch type="any">
<cfset errMsg = "#cfcatch.Message#">
</cfcatch>
</cftry>
<cfif trim(errMsg) eq ''>
<cftransaction action="commit">
<cfelse>
<cftransaction action="rollback">
<cfset strReturn = "Error: #errMsg#.">
</cfif>
</cftransaction>
<cfreturn strReturn>
</cffunction>
这可能是非常简单的事情,但我被卡住了。任何帮助表示赞赏。