データベース千夜一夜第14回

プログラミングとSQL(2)
~レコードの削除処理
長谷川裕行
有限会社 手國堂

サンプルアプリケーションの仕様

サンプルアプリケーションの名前は“ex01”としておきます。まず全体の仕様を把握しましょう。


- テーブルの保守処理 -

レコードの削除処理は、いわゆる「マスターテーブルの保守処理」の一部です。日常頻繁に使用することはないものの、日常業務の基礎情報となるマスターテーブルを最新に保つために、なくてはならない処理です。

マスターテーブルの保守処理では、一般に「レコードの削除・フィールドの更新・レコードの追加」の3種類のテーブル操作を行います。削除と更新では、先に処理対象のレコードを明確にしておかなければなりません。従って、前回紹介した検索処理を先に実行し、そこで検索されたレコードに対して削除や更新の処理を行います。

検索処理と削除や更新の処理とは、基本的に異なる処理として作成しなければなりません。検索に用いるSELECT命令と、削除や更新に用いるDELETE、UPDATEなどの命令とはまったく異なるSQLとなるため、検索したレコードを同じプロシージャの中で削除する――といった処理を作ってしまうとかえって混乱します。


- 検索と削除の二重構造 -

ここでは、以下のような二重構造を作ることにします。

1.キーワード(商品IDや商品名)でレコードを検索し、そこで処理対象のレコードを1件に絞り込む

2.上記の処理で絞り込まれたレコードに対して、削除処理を実行する

1.ではSELECT命令、2.でDELETE命令を実行することになるのですが、削除には1.で検索されたレコードを再度示さなければなりません。そこで、1.の段階で検索されたレコードの「商品ID」を保存しておき、2.の段階ではそれを参照して削除対象を決定するようにします。

当然、1.の検索処理には前回紹介したサンプルのコードが流用できます。


- フォームのデザイン -

Visual Studio .NETでVisual BasicのWindowsアプリケーションプロジェクトを新規作成し、フォームをデザインします。

テキストボックス“txtItemId”に「商品ID」を入力して[検索]ボタン“btnSearch”をクリックすると、ラベル“lblItemName”と“lblNumStock”に商品名と在庫数が表示される――という形で、この部分は前回紹介したサンプルとほぼ同じ仕様となります。

異なるのは、[削除]ボタン“btnDelete”をクリックすると、表示されているレコードが削除される点です。前回の検索処理に、この削除処理を追加する形となります。




トップページ
SqlConnectionとOleDbConnectionの違い(1)
SqlConnectionとOleDbConnectionの違い(2)
テーブルを書き換えるSQLの実行
サンプルアプリケーションの仕様
テーブルの保守処理
検索と削除の二重構造
フォームのデザイン
サンプルアプリケーションの作成
あとがき
Copyright © GrapeCity inc. All rights reserved.