テーブルのデータをクラスでもちたいのですが。


すりりんご  2003-01-30 02:37:18  No: 105950

同じデータを参照するのに何度もDBにアクセスするのがいやなので
クラス(xxx.cls)化してデータを保存するという、仕様書があがってきました。
(DBの更新もクラスでするそうです)
ですが、いままでクラスを使ったことがありません。
クラスというものの概念は大体理解しているつもりですが、
いざコーディングになると、何をどうすればいいか全然わかりません。

サンプルになるコードが乗ってるかなと、HPを検索してみましたが
なかなか見つかりません。もしご存知でしたら教えてください。
よろしくお願いいたします。


t@Ki  2003-01-30 04:41:06  No: 105951

テーブルをクラスにするかレコードをクラスにするかによって処理はかわりますが
両方ならばまずレコードをクラスにします。
たとえばclsRecordというクラスを作成します。
これには外部に公開する部分と隠蔽する部分を考えなければなりません。
まずモジュール内でPrivateな構造体を用意します

Private Type RECORD_DATA
      .Name As String
      .Age  As Integar
End Type

これで構造体の宣言ができました
さらに構造体のインスタンスもモジュール内Privateで宣言します

Private udtUserData As RECORD_DATA

これがこのクラスの隠蔽部分です
この構造体にアクセスするためのインターフェースとして
プロパティを設定すればレコードのクラスが完成します。

次にテーブルクラスを同じように公開する部分と隠蔽する部分の処理を実装し
作成します。
例えばデータベースのファイルパスプロパティやテーブル名プロパティなどです。
こうして作成したテーブルクラスにレコードクラスのインスタンスを
コレクションにして持たせ、それに対するインターフェースを付けることによって
クラスが完成します。

DBの更新もクラスで行うということなのですが、これはそれぞれのクラスに
DBを操作するメソッドを実装することによって可能になります。
こうすればデータアクセスオブジェクトを外部から意識せず操作することが可能に
なります。
ようするにDBを操作するコードをメソッドの中に隠蔽してしまうというわけです。
クラスの利点は、外部からいじられたくない部分をクラス内に隠蔽することによって、そのクラスを使う側からは簡単に目的の処理を実行できることにあります。
そのほかにも、こうしてカプセル化しておけば再利用が容易であるという利点もあります。
これがオブジェクト指向という考え方です。
これらの実際のコーディングに関しては、VBを使ったオブジェクト指向に関する書籍などを参考にすることをおすすめします。


takk  2003-01-30 19:56:51  No: 105952

クラスの概念は理解している、ということなのであまり必要ないかもしれませんが
下記のホームページでクラスの作り方が分かりやすく説明されています。

http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加