非 ActiveX アプリケーションでの Caché Direct の使用法
この章では、ActiveX を使用していない (VisM.ocx のない) C++ などのアプリケーションから Caché Direct のプロパティやメソッドを使用する方法について説明します。ここでは、読者が他の言語でのプログラミングを十分に理解していることを前提にしています。
一般的な手順
全手順は、以下のとおりです。
-
インターシステムズのサポート窓口Opens in a new tabから Caché Direct のヘッダ・ファイル (.h) を入手します。これらのファイルは、Caché Direct の機能を提供する C++ クラスを定義します。
-
アプリケーションのソース・コードに、これらのファイルを include します。
-
VisM オブジェクトの機能を再現するには、コードにより、CDLink クラスのインスタンスと、CDParms クラスのインスタンスを作成します。一般に、
-
CDLink には、タイムアウトやエラー・プロパティなどのプロパティや、Caché への接続の管理に使用されるメソッドが含まれます。これらは、VisM コントロールの対応するプロパティと同じです。
-
CDParms には、クライアントからサーバに送信されるプロパティがすべて含まれます。これらのプロパティも、VisM コントロールの対応するプロパティと同じです。
-
-
必要に応じて、プロパティの値を設定し、メソッドを実行します。この場合、VisM コントロールと同じ規則と考慮事項が適用されます。
推奨事項
ヘッダ・ファイルには、Caché Direct クラスに関する情報が大量に保管されていますが、これらのクラスがすべて直接的な使用に適しているわけではありません。まず、CDLink と CDParms クラスのみを使用することをお勧めします。これらのクラスは下位レベルのクラスの適切なメソッドを公開し、接続が適切に管理されていることを確認します。CDLink および CDParms 以外のクラスは無視してください。
次に、CtrlExec() メソッドではなく、CDLink の CtrlExec1() メソッドの使用をお勧めします。CtrlExec1 メソッドは、ミラーリングされたプロパティのコンテナとして使用される CDParms クラスで使用するように設計されていています。
メモ
参考までに、Caché Direct クラスの構成を理解しておくと便利です。まず、次の主要なクラスがあります。
-
CDLink クラスはクライアントを表します。VisM コントロールは、このクラスのラッパです。このクラスは、クライアントにより必要とされる共通プロパティやメソッドを公開します。プロパティには、タイムアウト、コールバック関数ポインタ、CDMsg オブジェクト、Error、ErrorName、ErrorTrap、キープアライブ、クライアント・タグなどがあります。メソッドには、独自のプロパティを管理するメソッドや、必要に応じて作成される CDConnect オブジェクトのメソッドなどがあります。CDLink はそれぞれ、0 個 または 1 個の CDConnect にアタッチできます。
-
CDConnect クラスは、このドキュメントの前半で説明したとおり、CDConnect オブジェクトを表します。このクラスには、基礎となる通信 DLL (古い NTI DLL、または Kerberos セキュリティを管理する新しい CConnect.dll) へのリンクが含まれます。また、クライアント側の読み取り/書き込みフックも提供します。実行可能名やシグニチャ、ユーザおよびクライアント・マシン名など、基本的な一定のクライアント情報はこのクラスに保持されています。また、通信スレッド、タイムアウト、およびキープ・アライブ機能を処理します。さらに、このクラスは、Connect、Send、SendKeepAlive、Receive、Disconnect などの基本メソッドを提供し、クライアントに対して Server プロパティなどのプロパティを公開します。また、このサーバが Unicode サーバであるかどうかを公開するほか、サーバのアドレスやポートなどのサーバ・プロパティも公開します。このクラスには、0 個以上のアタッチされた CDLink クライアントのリストも保持されます。
-
また、適切な形式でメッセージの構成と分解を行う方法を提供する CDMsg というヘルパー・クラスもあります。CDMsg は、Init、AppendField、GetField などのメソッドを提供します。CDLink には、クライアントからのメッセージを構築するための CDMsg が含まれます。また、CDConnect には、Task や KeepAlive メッセージなど、それ自体を構成するメッセージで使用される CDMsg もあります。
直接アクセスをサポートするために、一部のヘルパー・クラスも用意されています。
-
CDProp クラスは一部のデータ型を定義し、それらに変換メソッドを提供します。これはミラーリングされたプロパティを 1 つ表すために使用されます。
-
CDParms クラスは、クライアントがサーバに送信するすべての VisM プロパティ (ミラーリングされたプロパティとその他、数個のプロパティ) に対するコンテナです。内部的に、このクラスには、CDProp の複数のインスタンスが含まれます。
1 つの CDProp にはプロパティが 1 つ含まれます。CDParms は、1 つのクライアントに対するすべての CDProps のコレクションです。