SHOEISHA iD

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

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

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

第6回 CACHÉを活用した.NETアプリケーション開発(前半)

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


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

CACHÉ Managed Provider for .NETの使い方 Part 1

CACHÉ Managed Provider for .NETの機能

 Caché Managed Provider for .NETを使うと、.NETアプリケーションとCachéサーバ上のオブジェクトとの相互運用が可能になります。こうしたオブジェクトは、Cachéに格納される永続オブジェクト、あるいは Cachéサーバで処理を実行する一時的なオブジェクトです。Caché Managed Provider for .NETには、以下のコンポーネントが含まれます。

  • Cachéオブジェクトサーバ
  • TCP/IPを使用して、.NETオブジェクトとCaché間の通信を管理する高性能なサーバプロセスです。Cachéでは、.NET、C++、Java、Perl、Python、ODBC、および JDBCによるアクセスで共通のサーバを使用します。
     
  • InterSystems.Data.CacheClientアセンブリ
  • Cachéオブジェクトバインディングウィザードにより生成された.NETクラスのすべての機能を実装する.NETクラスのセット、および.NET標準ライブラリのフレームワークに適合するようにさまざまな方法で投影される、特定のサーバクラス用のプロキシクラスのセットです。
     
  • Cachéオブジェクトバインディングウィザード
  • Cachéクラスディクショナリに定義されたクラスから.NETクラスを生成するプログラムです。

CACHÉ Managed Provider for .NETの設定方法

 それでは、サンプルbookdemosをもとにCACHÉ Managed Provider for .NETの使い方を説明していきましょう。

InterSystems.Data.CachéClientアセンブリの参照設定

 上述したCaché Managed Provider for .NETのInterSystems.Data.CachéClientアセンブリは、Cachéの他のコンポーネントとともに自動的にインストールされるため、特別な準備は必要ありませんが、作成する.NETプロジェクトに、InterSystems.Data.CachéClientアセンブリへの参照を追加する必要があります。

  1. Visual C# 2005 Express Editionのメニューから、[プロジェクト]-[参照の追加]を選択します。
  2. [参照の追加]ウィンドウで[参照]タブをクリックし、「C:\Cachesys\Dev\dotnet」(Caché 2007.1では「C:\InterSystems\Cache\Dev\dotnet」)を参照して「InterSystems.Data.CacheClient.dll」を選択し、[OK]をクリックします。
参照の追加画面
参照の追加画面

 ソリューションエクスプローラの[参照設定]にInterSystems.Data.CacheClientアセンブリが追加されました。

 

アセンブリが追加されたソリューションエクスプローラ
アセンブリが追加されたソリューションエクスプローラ

 なお、Visual BasicとVisual C++でも同じように参照設定を行いますが、Visual C++の場合は方法が異なり、プロジェクトのプロパティページで[新しい参照の追加]を選択して追加するようにします。

 

Visual C++での参照設定画面
Visual C++での参照設定画面

CACHÉ Managed Provider for .NETのusing文の追加

 開発するプログラムに、CacheClientとCacheTypeという2つのusing文を追加します。CacheClientにより.NETアプリケーションがCachéを利用できるようになります。もう1つのCacheTypeは、CacheTypeネームスペースにあるクラス(Cachéプロキシオブジェクトのベースクラスなど)を利用する際に必要となります。

bookdemosプロジェクトのSampleCode.csのusing部分
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

// Add the following using statement
using InterSystems.Data.CacheClient;
using InterSystems.Data.CacheTypes;

namespace BookDemos {
  public class SampleCode {

…

CACHÉ接続をインスタンス化するコードの追加

 Caché Managed Provider for .NETの最も基本的な機能の一つに、Cachéデータベースへの接続の作成があります。次のコードは、サンプルが使用するSAMPLESネームスペースへの接続を確立するものです。接続オブジェクトは、CachéプロキシクラスまたはADO Providerクラス、あるいはその両方を使用しているかどうかに関わらず、Caché接続が必要なすべてのクラスで使用できます。

bookdemosプロジェクトのSampleCode.csの接続部分
private CacheConnection CacheConnect;

private void InitConnection() {
  // Try to run SimpleConnect().
  if (!SimpleConnect()) {
    // If the default SimpleConnect() fails, invoke the connection
    // dialog by calling DialogConnect().
    MessageBox.Show("Error in InitConnection(): \n"
        + "  Your connection string was:\n  "
        + CacheConnect.ConnectionString
        + "\n\n To enter the correct information, "
        + "click Cancel in the next dialog...");
    DialogConnect();
  }
  Display.WriteConnect(CacheConnect.ConnectionString);
} // end InitConnection()

private bool SimpleConnect() {
  bool okay = true;
  // Define a hardwired default connection string.
  string ConnStr =
     "Server = localhost;"
     + " Port = 1972;"
     + " Namespace = SAMPLES;"
     + " Password = SYS;"
     + " User ID = _SYSTEM;";
  try {
    // Create a connection object, then try to open 
    // the connection using the default connection string.
    CacheConnect = new CacheConnection();
    CacheConnect.ConnectionString = ConnStr;
    CacheConnect.Open();
  }
  catch {
    okay = false;
  }
  return okay;
} // end SimpleConnect()

 このオブジェクトを作成しておくと、そのオブジェクトを必要とするすべてのADO ProviderクラスやCachéプロキシクラス間で共有できます。接続オブジェクトは、必要に応じて、CacheConnect.Open()およびCacheConnect.Close()を使用して、明示的に開いたり閉じたりできます。

 また、接続文字列の入力をユーザに要求することもできます。ConnectDlg()メソッドを使うと、Cachéの標準接続ダイアログを表示して、ユーザの入力を接続文字列として返します。コードは次のようになります。

Cache'の標準接続ダイアログによる、接続文字列の要求部分
private void DialogConnect() {
  // use the connection dialog to connect to the desired server.
  try {
    string ConnStr = CacheConnection.ConnectDlg();
    CacheConnect.ConnectionString = ConnStr;
    CacheConnect.Open();
  }
  catch {
    // Close the application if no connection can be established.
    MessageBox.Show("Error in InitConnection(): \n"
       + "  You entered the following connection string:\n  "
       + CacheConnect.ConnectionString
       + "\n\n Unable to open a connection.");
    Application.Exit();
  }
} // end DialogConnect()

まとめ

 Caché Managed Provider for .NETを使えば、Connection、Command、DataReader、DataAdapterなどの汎用ADO Providerクラスと完全に互換性を保って、.NETプロジェクトからCachéデータベースにアクセスできます。次回は、引き続き、Command、DataReader、DataAdapterの解説と、データベースのインスタンスをオブジェクトと見なしてアクセスできる拡張機能のCachéプロキシについて解説します。

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング