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

SAP Sybase SQL Anywhere 16.0 » Ultra Light .NET プログラミング » Ultra Light.NET アプリケーション開発

 

トランザクション管理

Ultra Light のトランザクション処理は、データベース内のデータの整合性を保証します。トランザクションは、作業の論理単位です。トランザクション全体が実行されるか、トランザクション内の文がどれも実行されないかのいずれかです。

デフォルトでは、Ultra Light.NET は AutoCommit モードで動作するため、挿入、更新、削除はそれぞれ独立したトランザクションとして実行されます。操作が完了すると、データベースに変更が加えられます。

複数文のトランザクションを使用するには、ULConnection.BeginTransaction を呼び出して ULTransaction クラスのオブジェクトを作成する必要があります。たとえば、2 つの口座間で資金を移動するアプリケーションでは、振込元口座からの引き落としと振込先口座への振り込みとを合わせて 1 つの操作として完了する必要があります。完了できない場合は、両方とも完了しないでください。

接続が有効なトランザクションを処理した場合、ULTransaction.Commit 文を実行して、トランザクションを完了し、データベースへの変更をコミットする必要があります。一連の更新を中止する場合は、ULTransaction.Rollback 文を実行して、トランザクションのすべての操作を取り消してロールバックする必要があります。トランザクションがコミットまたはロールバックされると、次に ULConnection.BeginTransaction を呼び出すまで、接続は AutoCommit モードに戻ります。

たとえば、次のコードフラグメントは、(デフォルトのオートコミット動作を回避しながら) 複数の操作を伴うトランザクションを設定する方法を示しています。

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

Ultra Light は、IsolationLevel 列挙の ReadCommitted メンバーと ReadUncommitted メンバーをサポートしています。

一部の SQL 文 (特にデータベースの構造を変更する文) は、保留中のトランザクションをすべてコミットします。処理中に自動的にトランザクションをコミットする SQL 文の例として、CREATE TABLE と ALTER TABLE を挙げることができます。

 参照