万卷书>>电脑书籍>>网页制作>>网页制作软件使用>>ColdFusion 初级教程

WANJUANSHU.COM

事务处理(CFTRANSACTION)

你可以用CFTRANSACTION标签实现事务处理。一个CFTRANSACTION标签内的所有查询被视为一个事务处理单元。这意味着只有事务处理代码块中的所有查询都正确执行后,才能完成对数据库的修改。如果其中的一个查询发生了任何错误,则事务处理代码块中此查询之前的所有操作都被还原。


 

下面的例子演示了CFTRANSACTION标签的使用。如果第二个查询产生了错误,CFTRANSACTION保证了前一个查询所作的改动被还原,从而维持数据库中数据的一至性。


 

<CFTRANSACTION>


 

<CFQUERY NAME="WithdrawCash"


 

DATASOURCE="BankDB">


 

UPDATE Accounts


 

SET Balance=Balance - #Amount#


 

WHERE Account_ID=#AccountFrom#


 

</CFQUERY>


 

<CFQUERY NAME="DepositCash"


 

DATASOURCE="BankDB">


 

UPDATE Accounts


 

SET Balance=Balance + #Amount#


 

WHERE Account_ID=#AccountTo#


 

</CFQUERY>


 

</CFTRANSACTION>


 

注意,只有对同一个数据源的操作才支持事务处理。


 

你可以指定CFTRANSACTION标签的可选属性ISOLATION。该属性提供了更精细的控制,控制数据库引擎在执行事务处理时如何锁定数据。


 

ISOLATION属性的合法值有:


 

???????????????·READ_UNCOMMITTED


 

?????????????·READ_COMMITTED


 

?????????????·REPEATABLE_READ


 

??????????·SERIALIZABLE


 

注意:VERSIONING不再是ISOLATION属性的合法值,ColdFusion不再支持这个值。


 

事务处理的ODBC驱动程序支持


 

并非所有的驱动程序都支持事务处理,也并非所有支持事务处理的驱动程序都支持所有的ISOLATION级别。当你试图对某个驱动程序使用事务处理/锁定级别的组合时,ColdFusion会查询该驱动程序的事务处理能力。如果驱动程序不具备所需的事务处理能力,则ColdFusion返回一个错误。


 

关于驱动程序所支持的ISOLATION级别及其对每种级别如何实现等内容,需参考具体驱动程序的有关文档。


 

小结:


 

本章内容是本手册的重点之一,建议仔细阅读,并读懂所有的例子程序。需要强调的内容有:


 

·Form中隐含字段的使用(传参,数据输入检查)。


 

·CFINSERT和CFUPDATE标签要求Form字段名与要操作的数据库字段名相同。


 

·根据数据库查询结果建立动态Form。


 

·根据Form提交结果建立动态SQL语句。

 
上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书