連載
» 2008年04月25日 00時00分 公開

第8回 テーブルアダプタでトランザクション連載:Visual Studio 2005によるWindowsデータベース・プログラミング(2/4 ページ)

[遠藤孝信,デジタルアドバンテージ]

データベース確認の前の下準備

 ここではまず、Visual Studioでアプリケーションをデバッグ実行するたびにデータベースが初期化されないように、設定を変更しておきます。これは、アプリケーションの終了後にも、データベースの内容を確認できるようにするためです。

 第4回で解説したように、デフォルトではデータベース・ファイルの[出力ディレクトリにコピー]プロパティが「常にコピーする」となっています。これを「コピーしない」に変更します。

図3 データベース・ファイルの[出力ディレクトリにコピー]プロパティ
「常にコピーする」となっているのを「コピーしない」に変更する。

 そしてプロジェクトのディレクトリ(プログラムのソース・コードなどがあるディレクトリ)から、データベース・ファイルであるNORTHWND.MDFを、出力ディレクトリであるbin\Debugディレクトリ(デバッグ実行時にEXEファイルが作成されるディレクトリ)にコピーしておきます。

 以上の内容については、「.NET TIPS:Visual Studio 2005でデータベースの更新が反映されない場合には?」で説明していますので、詳しくはそちらを参照してください。

データベース不整合の確認

 それでは、注文テーブルの更新に失敗したため、注文明細データは削除されたのに注文データが残ってしまっている、という状況を確認してみましょう。

 とはいうものの、テーブルの更新だけをうまく失敗させるのは、実際にはなかなか大変なので、ここではその処理の直前でプログラムを停止させ、そこで実行を中断してプログラムを異常終了させることにします。このために、ブレイクポイントを次の画面のように設定します。

図4 ブレイクポイントの設定
注文テーブルの削除処理の前にブレイクポイントを設定する。マウスでエディタ画面の左端をクリックすればよい。

 ではアプリケーションを実行しましょう。表示される画面は次のようになります*1。起動時には、Order IDが10248の注文データが表示されています。この注文データには、3つの注文明細データが含まれているのが分かります。

図5 サンプル・アプリケーションの起動直後の画面
3つの注文明細データが含まれている最初の注文データが表示されている。データの総数は830件。

*1 ダウンロードしたNorthwindデータベースをそのまま使っている場合には、このような画面になるはずです。Northwindデータベースのダウンロードについては第4回で説明しています。


図6 [削除]ボタン・クリック後のアプリケーション画面
先頭のレコードが削除され、データ総数が830件から829件になった。

 そして、もう一度、アプリケーションを実行してみましょう。

図7 再起動直後のアプリケーション画面
データ総数は830件のままで注文データは残っているが、3件あった注文明細データだけが消えている。

 注文データは残っているのに、3件あった注文明細データだけが消えています。もくろみどおり、不整合な状態を作ることができました*2

*2 今回のアプリケーションでは、このような状態は正常な場合にもあり得るため、厳密には不整合な状態とはいえないかもしれませんが。


Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。