CachéでCache Directエミュレータを使っているアプリケーションをIRISのCache Directエミュレータに書き換える方法
IRISでは.Net Binding機能が非推奨になったため、VisM.OCXの置き換えのために用意していたCaché版Cache Directエミュレータ(.Net Binding機能を使用していたため)の使用も非推奨となりました。
そこでIRISのNative API機能を使用して書き換えたものを作成し、OpenExchange(以下のFAQトピックを参照してください)に登録しています。
Caché版Cache Directエミュレータを使っているアプリケーションをIRISに移行するためには、IRIS用のCache Directエミュレータに置き換えて、アプリケーションのコードをいくつか書き換える必要があります。
内容は、それぞれのプロジェクトに含まれるコンソールアプリケーションサンプル(consoleApp.cs)を比較することで大体理解できると思いますが、以下にその手順について説明します。
1. IRISの.Net Native API用のdllの参照設定を追加します。
Visual Studioのプロジェクト設定から参照の追加を選び、以下のファイルを追加してください。
InterSystems.Data.IRISClient.dll
2. using句
Caché版の場合は、以下のusing句が使われていると思います。
using InterSystems.Data.CacheTypes;
IRISでは、以下の様に変更します。
using InterSystems.Data.IRISClient.ADO;
3. 接続処理およびインスタンスの生成
Caché版の場合は、以下のような記述で接続、インスタンス生成処理を行っていると思います。
IRIS版でも同じ処理で接続、インスタンス生成できます。
IRIS版では先にIRISへの接続を確立後、その接続オブジェクトを使用して接続する方法もサポートしています。
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つ使用)になっていました。
IRIS版の場合は、そのような制約がないので、直接1つの.で参照できるようになりました。