SQLではポリモーフィングが非常にしづらいので、SQLを書かずにデータベースを扱う方法。
VisualStudio(VS), Cache'がインストールされていることが前提。
手順をまとめると
1:Cache'と.NETを結びつけるために、.NET上で動くクラス(プロキシクラスと呼ばれている)をCache'から出力する。
http://docs.intersystems.com/cache20171j/csp/docbook/DocBook.UI.Page.cls?KEY=GBMP_proxy#GBMP_proxy_generating
2:VSで項目に追加する。
3:クラスとして宣言し、Newしてインスタンスを生成し、Saveで保存する。
4:保存されたデータは既にデータベースになっている。
☆ここからが本題
ODBが普通のプログラムと違うところは
A:VS上でNewすると、%Persistent
から継承したプロキシクラスでは、ディスク上にインスタンスが生成される(つまり、データテーブルに、新しい行が追加されるのと等価)→一度生成したインスタンスは明示的にDeleteするまで消えない。ディスク空間をあたかもメモリ空間のように使える。
B:生成したインスタンスには一意のIDが割り振られる。
C:過去に保存したデータを呼び出すときは、OpenID()
という関数でIDを指定して呼び出すか、あるいはテーブルを丸ごと読み出して、その中から検索するかのいずれかである(次回以降に詳述)