使用 CFTransaction、CFThrow 和 CFDump 中止回滚
Rollback with CFTransaction, CFThrow and CFDump abort
我已阅读有关 cftransaction 的文档,但无法弄清楚回滚 <cfdump var="#myVar#" abort>
、<cftransaction action="rollback" />
或 <cfthrow message="Error">
之间的区别
假设 var a
是为了示例目的而预设的。 cftransaction
标记内的所有查询仅在使用 cfdump abort
时执行回滚。使用正确的 rollback action
或 cfthrow
标签,他们 不会 回滚。
我是 CF2016 新手。有人可以向我解释回滚与回滚之间的区别吗?
<cftransaction action="begin">
...somecode with querys...
<cfif a eq 1>
<cftransaction action="rollback" />
<cfelseif a eq 2>
<cfthrow message="Error">
<cfelse>
<cfdump var="Error" abort>
</cfif>
</cftransaction>
尝试在执行回滚操作之前设置 save-point...我不是 100% 确定您是否需要在实际能够执行回滚之前明确设置它
因为 <cfabort>
停止处理页面,所有在 <cftransaction>
标签中进行的查询都将被反转,无论保存点如何,而使用 <cftransaction action="rollback" />
你可以重置它查询集中的特定点。
例如考虑以下流程
<cftransaction>
<Query 1 >
<Query 2 >
<cftransaction action = "setsavepoint" savepoint = "#point#"/>
<Query 3 >
</cftransaction>
如果查询 3 因 <cftransaction action="rollback" savepoint="#point#" />
失败,您可以回滚到不必重做 <Query 1 > <Query 2 >
的点,只需担心 <Query 3 >
通过不重复为您节省一些开销那些查询。在 CFDUMP 中使用 CFABORT 它将中止整个事务
本页最后一个带有提款的示例显示了保存点的使用
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-t/cftransaction.html
我已阅读有关 cftransaction 的文档,但无法弄清楚回滚 <cfdump var="#myVar#" abort>
、<cftransaction action="rollback" />
或 <cfthrow message="Error">
假设 var a
是为了示例目的而预设的。 cftransaction
标记内的所有查询仅在使用 cfdump abort
时执行回滚。使用正确的 rollback action
或 cfthrow
标签,他们 不会 回滚。
我是 CF2016 新手。有人可以向我解释回滚与回滚之间的区别吗?
<cftransaction action="begin">
...somecode with querys...
<cfif a eq 1>
<cftransaction action="rollback" />
<cfelseif a eq 2>
<cfthrow message="Error">
<cfelse>
<cfdump var="Error" abort>
</cfif>
</cftransaction>
尝试在执行回滚操作之前设置 save-point...我不是 100% 确定您是否需要在实际能够执行回滚之前明确设置它
因为 <cfabort>
停止处理页面,所有在 <cftransaction>
标签中进行的查询都将被反转,无论保存点如何,而使用 <cftransaction action="rollback" />
你可以重置它查询集中的特定点。
例如考虑以下流程
<cftransaction>
<Query 1 >
<Query 2 >
<cftransaction action = "setsavepoint" savepoint = "#point#"/>
<Query 3 >
</cftransaction>
如果查询 3 因 <cftransaction action="rollback" savepoint="#point#" />
失败,您可以回滚到不必重做 <Query 1 > <Query 2 >
的点,只需担心 <Query 3 >
通过不重复为您节省一些开销那些查询。在 CFDUMP 中使用 CFABORT 它将中止整个事务
本页最后一个带有提款的示例显示了保存点的使用 https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-t/cftransaction.html