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éオブジェクトサーバ
- InterSystems.Data.CacheClientアセンブリ
- Cachéオブジェクトバインディングウィザード
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アセンブリへの参照を追加する必要があります。
- Visual C# 2005 Express Editionのメニューから、[プロジェクト]-[参照の追加]を選択します。
- [参照の追加]ウィンドウで[参照]タブをクリックし、「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++の場合は方法が異なり、プロジェクトのプロパティページで[新しい参照の追加]を選択して追加するようにします。
CACHÉ Managed Provider for .NETのusing文の追加
開発するプログラムに、CacheClientとCacheTypeという2つのusing文を追加します。CacheClientにより.NETアプリケーションがCachéを利用できるようになります。もう1つのCacheTypeは、CacheTypeネームスペースにあるクラス(Cachéプロキシオブジェクトのベースクラスなど)を利用する際に必要となります。
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é接続が必要なすべてのクラスで使用できます。
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éの標準接続ダイアログを表示して、ユーザの入力を接続文字列として返します。コードは次のようになります。
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éプロキシについて解説します。