記事
· 2022年10月14日 2m read

CachéでCache Directエミュレータを使っているアプリケーションをIRISのCache Directエミュレータに書き換える方法

IRISでは.Net Binding機能が非推奨になったため、VisM.OCXの置き換えのために用意していたCaché版Cache Directエミュレータ(.Net Binding機能を使用していたため)の使用も非推奨となりました。

そこでIRISのNative API機能を使用して書き換えたものを作成し、OpenExchange(以下のFAQトピックを参照してください)に登録しています。

FAQのトピック


Caché版Cache Directエミュレータを使っているアプリケーションをIRISに移行するためには、IRIS用のCache Directエミュレータに置き換えて、アプリケーションのコードをいくつか書き換える必要があります。

内容は、それぞれのプロジェクトに含まれるコンソールアプリケーションサンプル(consoleApp.cs)を比較することで大体理解できると思いますが、以下にその手順について説明します。

 

1. IRISの.Net Native API用のdllの参照設定を追加します。

 

Visual Studioのプロジェクト設定から参照の追加を選び、以下のファイルを追加してください。

 

c:\InterSystems\IRIS\dev\dotnet\bin\v4.6.2
InterSystems.Data.IRISClient.dll

 

2.  using句

 

Caché版の場合は、以下のusing句が使われていると思います。

 

using InterSystems.Data.CacheClient;
using InterSystems.Data.CacheTypes;

 

IRISでは、以下の様に変更します。

 

using InterSystems.Data.IRISClient;
using InterSystems.Data.IRISClient.ADO;


3. 接続処理およびインスタンスの生成

Caché版の場合は、以下のような記述で接続、インスタンス生成処理を行っていると思います。

 

cacheDirectWapper cdw = new cacheDirectWapper("Server = localhost; Log File=cprovider.log;Port=1972; Namespace=USER; Password = SYS; User ID = _system;");

 

IRIS版でも同じ処理で接続、インスタンス生成できます。

 

IRIS版では先にIRISへの接続を確立後、その接続オブジェクトを使用して接続する方法もサポートしています。

 

IRISConnection irisconn = new IRISConnection();
irisconn.ConnectionString = "Server = localhost; Log File=cprovider.log;Port=1972; Namespace=USER; Password = SYS; User ID = _system;";
irisconn.Open();
cacheDirectWapper cdw = new cacheDirectWapper(irisconn);

 

4.  プロパティの参照

Caché版の場合には、.Net Bindingの仕様の制約によって、プロパティやメソッドの参照は、以下の様に2段階(.を2つ使用)になっていました。

 

cdw.cd.P0 = "ABC;DEF;GHI";


IRIS版の場合は、そのような制約がないので、直接1つの.で参照できるようになりました。
 

cdw.P0 = "ABC;DEF;GHI";
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください