Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » UltraLite - .NET 编程 » UltraLite.NET 应用程序开发

 

事务管理

UltraLite 提供了事务处理机制以确保数据库中数据的完整性。事务是一个逻辑工作单元。要么执行整个事务,要么不执行事务中的任何语句。

缺省情况下,UltraLite.NET 在 AutoCommit 模式下运行,所以,每个插入、更新或删除都会作为一个独立事务来执行。一旦操作完成后,也就完成了对数据库的更改。

要使用多语句事务,必须通过调用 ULConnection.BeginTransaction 创建一个 ULTransaction 类对象。例如,如果应用程序在两个帐户之间转移资金,必须使用不同的操作,在减少汇出帐户金额的同时增加汇入帐户的金额,否则两个帐户都保持不变。

如果连接已执行了一个有效的事务,则必须执行 ULTransaction.Commit 语句以完成该事务,并向数据库提交更改。如果即将放弃更新集,则执行 ULTransaction.Rollback 语句取消和回退事务的所有操作。提交或回退一个事务后,连接将恢复为 AutoCommit 模式,直至下一次调用 ULConnection.BeginTransaction。

例如,以下代码段说明如何设置涉及多种操作的事务(避免缺省自动提交行为):

// Assuming an already open connection named  conn
ULTransaction txn = conn.BeginTransaction(IsolationLevel.ReadUncommitted);
// Perform transaction operations here
txn.Commit();
注意

UltraLite 只支持 IsolationLevel 枚举的 IsolationLevel.ReadUncommitted 成员。

某些 SQL 语句(尤其是更改数据库结构的语句)会导致所有待执行的事务被提交。运行中自动提交事务的 SQL 语句示例为:CREATE TABLE 和 ALTER TABLE。

 另请参见