トランザクションの技術サンプル

更新 : 2007 年 11 月

このサンプルでは、.NET Framework アプリケーションでのトランザクションの使用例を示します。また、このサンプルでは、特に、SQL Server データベースの値を取得して、トランザクションの "commit" 関数および "abort" 関数を使用する方法を示しています。この処理を行うと、データベースの値の変更や、新しい値の書き込みなどを行うことができます。

awsb14xh.alert_note(ja-jp,VS.90).gifメモ :

このサンプルをビルドおよび実行するには、使用しているコンピュータに Microsoft SQL Server 2000 以降をインストールし、さらに、Windows 認証を使用するようにデータベース エンジンを構成する必要があります。他の構成の場合には、TxObj.cs ファイルまたは TxObj.vb ファイル内の SQL 接続文字列を編集する必要があります。

サンプルの使用については、次のトピックを参照してください。

TxDemoDB データベースを作成するには

  1. コマンド プロンプト ウィンドウを開き、Technologies\ComponentServices\Transactions ディレクトリにある、言語固有のサブディレクトリのいずれかに移動します。

  2. コマンド ラインで「osql -E -S (local)\SQLExpress -i TxDB.sql」と入力します。または、SQL Server のクエリ アナライザ ウィンドウを開き、TxDB.sql を読み込み、[実行] をクリックします。

    この操作によって、使用している SQL Server に新しい TxDemoDB データベースが作成されます。

コマンド プロンプトを使用してサンプルをビルドするには

  1. コマンド プロンプト ウィンドウを開き、Technologies\ComponentServices\Transactions ディレクトリにある、言語固有のサブディレクトリのいずれかに移動します。または、上記で TxDemoDB データベースを作成する際に使用したコマンド プロンプト ウィンドウを使用します。

  2. プログラミング言語の選択に応じて、コマンド ラインで、「msbuild TransactionsCS.sln」または「msbuild TransactionsVB.sln」と入力します。

Visual Studio を使用してサンプルをビルドするには

  1. Windows エクスプローラを開き、サンプルが格納されている、言語固有のサブディレクトリのいずれかに移動します。

  2. 使用しているプログラミング言語に応じて、TransactionsCS.sln ファイルまたは TransactionsVB.sln ファイルのアイコンをダブルクリックして、このファイルを Visual Studio で開きます。

  3. [ビルド] メニューの [ソリューションのビルド] をクリックします。

サンプルを実行するには

  1. コマンド プロンプト ウィンドウまたは Windows エクスプローラを開き、新しくビルドした実行可能ファイルが格納されているディレクトリに移動します。

  2. コマンド ラインで「TxDemo.exe」と入力するか、Windows エクスプローラで実行可能ファイルのアイコンをダブルクリックします。

  3. 現在の値がデータベースから読み込まれ、表示されます。

  4. [New Value] フィールドに、0 以上 10 以下の値を入力し、[Post] をクリックします。

  5. "About to commit the transaction" というメッセージが表示されます。[OK] をクリックします。[Current Value] フィールドが更新され、入力した値が表示されます。

  6. [New Value] ボックスに、0 未満の値または 10 を超える値を入力します。[Post] をクリックします。

  7. "新しい値が ([yourvalue]) <0 または >10 のいずれかであるため、トランザクションを中止しようとしています。" というメッセージが表示されます。[OK] をクリックします。[Current Value] ボックスの内容は変更されません。これは、トランザクションの処理中に現在の値が変更されたものの、トランザクションがロール バックされたときに、元の値に戻されたためです。

  8. 次に、同じデータを [AutoPost] ボタンを使用して入力してみましょう。今度は、デモがトランザクションを中止するときに COMException がスローされます。これは、中止処理を行うように AutoComplete に通知するためです。

サンプルをアンインストールするには

  1. コマンド プロンプト ウィンドウで、msbuild.exe を実行したディレクトリまたは .sln ファイルを開いたディレクトリに移動します。

  2. 使用しているプログラミング言語に応じて、「msbuild.exe TransactionsVB.vbproj /t:Clean」または「msbuild.exe TransactionsCS.csproj/t:Clean」と入力します。この操作によって /u スイッチ付きで regsvcs.exe および gacutil.exe が呼び出され、COM+ カタログおよびグローバル アセンブリ キャッシュからサンプル ファイルが削除されます。

  3. コマンド ラインで「osql -E -S (local)\SQLExpress -i TxDBClean.sql」と入力します。または、SQL Server のクエリ アナライザ ウィンドウを開き、TxDBClean.sql ファイルを読み込んで、[実行] をクリックします。この操作によって、使用している SQL Server から TXDemoDB データベースが削除されます。

必要条件

.NET Framework のバージョン : 2.0、1.1、1.0

解説

トランザクションとは、一連の演算処理をまとめたものです。演算はすべてが実行されるか、1 つも実行されないかのいずれかです。トランザクションの演算のいずれかが失敗した場合は、一貫性を保つために、それまでに実行されたすべての演算をロール バックする必要があります。

サンプルのバイナリ ファイルを作成する方法および登録する手順の詳細については、ソース コード ファイル内のコメントを参照してください。C# コンポーネントは、コンポーネント サービス管理ツールでは、TxDemoServerCS.TxObject と表示されます。VB バージョンは、TxDemoServerVB.TxObject と表示されます。

参照

概念

ローカル トランザクション (ADO.NET)

参照

AutoCompleteAttribute

ContextUtil

ServicedComponent

System.ComponentModel

System.Data

System.Data.SqlClient

System.Drawing

System.EnterpriseServices

System.Reflection

System.Runtime.InteropServices

System.Runtime.Serialization

System.Windows.Forms

TransactionAttribute

TransactionOption

WebMethodAttribute