Coldfusion 使用cftransaction不会回滚条目

Coldfusion 使用cftransaction不会回滚条目,coldfusion,coldfusion-10,Coldfusion,Coldfusion 10,我正在使用cftransaction标记,当出现错误时,它不会回滚条目,我不确定出了什么问题,我还没有使用cftransaction的嵌套部分,简单的部分不起作用,我不确定嵌套在这里的行为如何,如果错误,请更正我的代码 <cffunction access="public" name="newRegistration" returntype="any"> <cfargument name="structform" default="" required="no" typ

我正在使用cftransaction标记,当出现错误时,它不会回滚条目,我不确定出了什么问题,我还没有使用cftransaction的嵌套部分,简单的部分不起作用,我不确定嵌套在这里的行为如何,如果错误,请更正我的代码

<cffunction access="public" name="newRegistration" returntype="any">
    <cfargument name="structform" default="" required="no" type="struct">
      <cfset var newregis = "">
      <cfset var str = "">
      <cfset var msg = "">
      <cftry>
        <cftransaction action="begin"/>
           <cfquery name="newregis" result="lastGenerated">
               --- Insert Goes Here ---
           </cfquery>
           <cfset rsLastID = lastGenerated.generated_key>
           <cfif isDefined('arguments.structform.mailoption') AND arguments.structform.mailoption EQ 'Yes'>
               <cfset msg = createAccountEmail(rsLastID,'nar')>
           </cfif>
           <cftransaction action="commit"/>
           <cfset str = "Account Created Successfully. #msg#">
           <cfcatch type="any">
             <cftransaction action="rollback"/>
             <cfset str = "Error! #cfcatch.Detail# #cfcatch.Message#. Entry rolled back, try again">
           </cfcatch>
         </cftry>
         <cfreturn str>
</cffunction>

---插入到这里---

您似乎缺少应该包装在try/catch块周围的closing CFTRANSACTION标记

<cftransaction action="begin">
    <cftry>
        ...
        <cfcatch type="any">
            <cftransaction action="rollback" />
            ...
        </cfcatch>
    </cftry>
</cftransaction>

...
...

使用这种结构,你应该很好。

将此
读作
触发cfcatch块的错误是什么?另外,关于你的评论,如果你的问题有错误,为什么不编辑它呢?哎呀!我错了,我没有编辑,我现在已经编辑了。我让它在插入后失败了,但它没有回滚。您的结束在哪里?像这样,我不认为它可以嵌套在
cftry
,可能需要(减去
中的结束
/
)。但是你是对的,不正确的标记结构是导致问题的原因。好的,这里发现了一个条目,它与我的条目几乎相同,因为唯一的事情是主cftransaction=“begin”在cftry bloack之外,并且在cftry之后关闭。哈哈,这与前面链接中提到的结构完全相同!你只需要插入你的代码。。。