この特集のトップページへ
Chapter 6:ビジネスロジックの設計

6.2.2 顧客情報の編集
●データオブジェクトの構築

○削除されているかどうかを確認する
 いままで顧客情報を更新するUpdateRecordメソッドやUpdateRecord_BILLDAYメソッドを実装してきたわけだが,この2つのメソッドは対象となる顧客番号(顧客情報テーブルのIDフィールドの値)を指定し,どの顧客に対する操作なのかを指定するようにしてきた。指定された顧客が存在しない場合には,Err.Raiseメソッドを使ってエラーを返すようにしているが,場合によってはUpdateRecordメソッドやUpdateRecord_BILLDAYメソッドを呼び出すまえに,指定された顧客が存在するかどうかを事前に調査したいことがある。

 そこで,DataObj.CustomerコンポーネントにList 6-23に示すIsDeletedというメソッドを追加することにする。

 顧客の状態には,「存在する」「削除されている」「存在しない」という3つがある。ただし,「Chapter 3 データストア層の構築」でも説明したように,データを削除するときには,データベースの各テーブルに履歴を残すため,実際にはレコードを削除するのではなく,DELETEDFLAGというフィールドにTrueを格納することで「削除ずみ」という印を付ける(具体的なレコードの削除については,「6.2.3 顧客情報の削除」で説明する)。したがって,ここでの「存在する」とは「対象となる顧客のレコードが存在し,かつDELETEDFLAGフィールドの値がFalseである」,「削除されている」とは「対象となる顧客のレコードが存在し,かつDELETEDFLAGフィールドの値がTrueである」,「存在しない」とは「対象となる顧客のレコードそのものが存在しない」という状態を,それぞれ示すことにする。

 そこで,IsDeletedメソッドは引数に顧客番号をとり,その顧客が存在するならばID_Existsを,削除されていたならばID_Deletedを,存在しなければID_NotFoundを返すよう実装した。これらの値はDeletedFlagという列挙型として1〜6行目に定義した。

prevpg.gif Chapter 6 22/92 nextpg.gif