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

プログラミングとSQL(3)
~フィールドの更新とレコードの追加処理
長谷川裕行
有限会社 手國堂

フィールドの更新処理(1)~SQLとアプリの仕様

前回は、DELETE命令によるレコードの削除を試しました。今回はフィールドの更新とレコードの追加を試してみましょう。これらのSQLは削除処理に比べて複雑になります。まず、更新処理から紹介しましょう。


- 更新と削除はほぼ共通 -

レコードを更新するためにはUPDATE命令を使います。それ以外は前回のDELETE命令と同じで、CommandオブジェクトのExecuteNonQueryメソッドを発行してSQLを実行します。

更新と削除の処理は、処理の対象となるレコードを特定する基本部分の処理が共通しています。その後、対象となるレコードを削除するか、ユーザーが入力した値でフィールドの値を更新するか――という部分が異なります。

……と、言葉では簡単なのですが、アプリケーションで実際にこの処理を組み立てるには、慣れていないと戸惑う部分も少なくありません。注意すべき点は、削除を行うDELETE命令では単純に目的のレコードを指定すればよかったのに対し、値を更新するUPDATE命令ではフィールド名とそこに設定する値との組(ペア)を正しく設定しなければならない――というところです。


- 単価の改定処理 -

ここでは、「商品の仕入単価と販売単価を改訂する」処理を例に説明します。

フォームは画面1のようなデザインとします。「商品ID」を入力して[検索]ボタンをクリックし、処理対象の商品を特定したら、仕入単価と販売単価を書き換えて[更新]ボタンを押す――という仕様です。

フォームのデザインも含めて、基本部分は前回紹介した削除処理と共通です。大きく変更されるのは、[削除]ボタンをクリックしたときの処理が[更新]ボタンをクリックしたときの処理に置き換わる点です。

[更新]ボタンは“btnUpdate”ですから、これをクリックしたときに実行されるプロシージャ“btnUpdate_Click”で更新処理を行います。


- 更新処理のSQLは複雑 -

削除処理ではDELETE命令を使いましたが、レコード中の特定のフィールドの値を書き換えるにはUPDATE命令を使います。実質的には、この部分のSQLを書き換えるだけで済みます。

単純に削除対象のレコードを特定すればよいDELETE命令とは異なり、UPDATE命令では特定のフィールドの値を「ユーザーの入力した値」に置き換えなければなりません。そのためのSQLを生成する処理が、削除の場合より複雑になります。

UPDATE命令の書式を確認しておきましょう。

  UPDATE <テーブル名> SET <フィールド> = <値>, <フィールド> = <値> ...
  WHERE <条件式>

<条件式>の箇所は、以下のような書式となります。

  <キーフィールド名> = <値>



トップページ
フィールドの更新処理(1)~SQLとアプリの仕様
更新と削除はほぼ共通
単価の改定処理
更新処理のSQLは複雑
フィールドの更新処理(2)~ソースコードの記述
レコードの追加処理(1)~SQLとアプリの仕様
レコードの追加処理(2)~商品IDの重複検査
レコードの追加処理(3)~仕入先名の表示
レコードの追加処理(4)~実際の追加処理
あとがき
Copyright © MESCIUS inc. All rights reserved.