SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

SQLも使えるオブジェクトデータベース「CACHE'」を知る

第2回 CACHÉの基本操作と拡張性

SQLも使えるオブジェクトデータベース「CACHE'」を知る 2


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

CACHÉによるオブジェクト指向開発(2/2)

CACHÉターミナルによるインスタンスの生成・保存

 作成したFS.Personクラスを使用して、そのインスタンスを生成してみましょう。Caché ObjectScriptはJava言語と同様のP-Code言語ですが、Cachéターミナル上では、インタプリタ言語のように即時実行が可能となり、インスタンスの生成コマンドを実行できます。

 Cachéターミナルで、次のコマンドを実行しましょう。

Set p = ##class(FS.Person).%New()

 このコマンドは、FS.Personクラスのインスタンスを生成し、メモリ上の変数pに格納するものです(ただし、この時点ではインスタンスはまだデータベースに保存されません)。%New()は新しいインスタンスを生成するクラスメソッドで、クラスメソッドを呼び出すには、##class(classname).method()というシンタックスを使用します。続いて、このインスタンスに対して、各プロパティの値を設定します。

Set p.Name = "インターシステムズ 太郎"
Set p.Address = "東京都新宿区"
Set p.Gender = "M"

Set p.DOB = ##class(%Date).DisplayToLogical("5/1/1978")

 DOBプロパティには、##class(%Date).DisplayToLogical()というシンタックスによって、日付を文字列からCachéの内部日付フォーマットに変換して設定しています。

 最後に、Writeコマンドでメモリ上のインスタンスをデータベースに保存します。下図のように、1が出力されれば保存が成功したことになります。これで、インスタンスが1つデータベースに保存されました。

CACHÉターミナル ― インスタンスの生成
CACHÉターミナル ― インスタンスの生成

CACHÉターミナルによるインスタンスの読み込み

 本当にインスタンスがデータベースに保存されたか、別のターミナルを開いてそこからインスタンスを読み込んで確かめてみましょう。別のCachéターミナルから次のコマンドを実行します。

Set p = ##class(FS.Person).%OpenId(1)

 この%OpenId()は、指定されたOID(Object ID)を持つインスタンスをオープンするメソッドです。OIDは、インスタンス保存時にCachéにより自動的に付与され、通常は正の整数です。クラスの最初のインスタンスは通常OID=1となるので、このコマンドで先程保存されたインスタンスを読み込むことができるのです。それでは、オープンしたインスタンスのプロパティの値を確かめてみましょう。下図は、その出力結果です。

CACHÉターミナル ― インスタンスの読み込み
CACHÉターミナル ― インスタンスの読み込み

 その他、作成したクラスのインスタンスを操作するメソッドが定義できます。また年齢のような計算して求める計算プロパティなど、さまざまな機能があります。本連載では文字量の都合上、すべてを説明することはできませんが、インターシステムズのWebサイト「技術資料とカタログ」ページにさまざまな技術資料がありますので、ぜひ参考にしてください。

CACHÉの拡張性

 Cachéは以上のような特長を持ったオブジェクトデータベースです。現在提供されているバージョンのCaché 5.2では、上記したこと以外にも、主に次のような拡張が成されています。

.NETサポートの強化

 マネージドオブジェクトプロジェクション機能により、Cachéオブジェクトから.NETアセンブリの自動生成が可能。また、Visual Studioで開発する場合、Cachéのマネージド.NETオブジェクトプロジェクションにアクセスできるプラグイン機能が追加。

SNMPサポート

 CachéモニタにSNMP(Simple Network Management Protocol)サポートが加わり、SNMPを使ったさまざまなサードパーティのシステム管理ツールやフレームワークによるCachéの監視が可能。

オブジェクトの同期

 オブジェクトやSQLを通して自動的に挿入、更新、削除を自動的に追跡し、その変更を他のシステムにプロパゲートする機能が追加。この機能により、モバイルや断続的に接続されるようなアプリケーションで、データベースの整合性を保つことが可能。

まとめ

 この第2回で、Cachéの基本操作と拡張性はご理解いただけたでしょうか。次回以降は、Cachéによる本格的なシステム開発について解説していきます。第3回は、JavaバインディングとJDBC、およびCaché 2007より搭載される、オブジェクトリレーショナルマッピングを不要にする新コンポーネント「Jalapeno(ハラペーニョ)」の概要に触れたいと思います。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
SQLも使えるオブジェクトデータベース「CACHE'」を知る連載記事一覧

もっと読む

この記事の著者

トップスタジオ(トップスタジオ)

1997年の創立以来、一貫してPC/IT関連書籍、雑誌等記事の制作業務を手掛けるプロフェッショナル集団。翻訳・編集・DTPのほか、技術監修や著作も多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1149 2008/09/03 13:43

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング