TTXlaTableHandlerクラスは、アプリケーション開発者が特定の表の変更を処理するカスタマイズ済クラスを記述する際の基本クラスです。
なし
メンバー
|
説明
|
---|---|
TTXlaTable tbl; |
処理対象の表に関連付けられたオブジェクト。 |
TTXlaRowViewer row; |
挿入または削除される行、あるいは変更される行の古いイメージを表示するために使用されます。 |
TTXlaRowViewer row2; |
更新される行の新しいイメージを表示するために使用されます。 |
TTXlaTableHandler (TTXlaConnection& conn, const char* ownerP,
const char* nameP)
このTTXlaRowViewerを特定の表に関連付けます。このオブジェクトに含まれるTTXlaTableオブジェクトを初期化します。
virtual void EnableTracking (TTStatus&);
基礎となる表のXLA更新追跡を有効にします。このメソッドがコールされるまでは、XLAによってこの表の変更に関する情報が返されません。
virtual void DisableTracking (TTStatus&);
基礎となる表のXLA更新追跡を無効にします。このメソッドがコールされた後は、XLAによってこの表の変更に関する情報が返されません。
virtual void HandleChange (ttXlaUpdateDesc_t*, void* pData = 0);
ttXlaUpdateDesc_tを適切な処理ルーチンにディスパッチして処理します。更新記述が分析され、それが削除、挿入または更新のいずれであるかが判別されます。その後、適切な仮想メソッド(HandleDelete、HandleInsertまたはHandleUpdate)がコールされます。
pDataパラメータの使用方法は、「トランザクション境界におけるXLA更新の確認」を参照してください。
virtual void HandleDelete (ttXlaUpdateDesc_t*) = 0;
このメソッドは、削除操作を処理するためにHandleChangeメソッドがコールされるたびに起動されます。
このメソッドはTTXlaTableHandler基本クラスには実装されませんが、TTXlaTableHandlerから導出される任意のクラスで提供される必要があります。アプリケーション開発者は、削除される行を処理するロジックをこのメソッドに配置する必要があります。
表から削除された行は、rowという名前のRowViewerによって取得できます。
virtual void HandleInsert (ttXlaUpdateDesc_t*) = 0;
このメソッドは、挿入操作を処理するためにHandleChangeメソッドがコールされるたびに起動されます。
このメソッドはTTXlaTableHandler基本クラスには実装されませんが、TTXlaTableHandlerから導出される任意のクラスで提供される必要があります。アプリケーション開発者は、挿入される行を処理するロジックをこのメソッドに配置する必要があります。
表から削除された行は、rowという名前のRowViewerによって取得できます。
virtual void HandleUpdate (ttXlaUpdateDesc_t*) = 0;
このメソッドは、更新操作を処理するためにHandleChangeメソッドがコールされるたびに起動されます。
このメソッドはTTXlaTableHandler基本クラスには実装されませんが、TTXlaTableHandlerから導出される任意のクラスで提供される必要があります。アプリケーション開発者は、更新される行を処理するロジックをこのメソッドに配置する必要があります。
表で更新された行の古いバージョンはrowという名前のRowViewerによって取得でき、行の新しいバージョンはrow2によって取得できます。
void generateSQL (ttXlaUpdateDesc_t*, char * buffer,
SQLINTEGER maxLen, SQLINTEGER *actualLen, TTStatus &);
このメソッドを使用して、特定のXLAレコードに関連付けられたSQLを出力できます。SQL文字列はbufferパラメータによって返されます。このパラメータは、このメソッドのコール元が領域を割り当て、maxLenパラメータで長さを指定したパラメータです。actualLenパラメータは、返されるSQL文字列の実際の長さに関する情報を返します。
生成されたSQL文字列よりmaxLenが小さい場合は、TTStatusエラーが返され、バッファの内容とactualLenは変更されません。
TTClassesの/demo/ttclasses/xlademo.cppデモ・プログラムは、このメソッドの使用方法を示します。
アプリケーション開発者は、TTXlaTableHandlerから1つ以上のクラスを導出し、そのクラスのHandleInsert、HandleDeleteおよびHandleUpdateメソッドに、アプリケーションのロジックの大部分を配置できます。
1つの方法は、各表につき1つずつ、TTXlaTableHandlerから複数のクラスを導出することです。たとえば、顧客の変更を処理するビジネス・ロジックをCustomerTableHandlerクラスに実装し、注文の変更を処理するビジネス・ロジックをOrderTableHandlerクラスに実装します。
もう1つの方法は、様々な使用例を処理する1つ以上の汎用クラスをTTXlaTableHandlerから導出することです。たとえば、TTXlaTableHandlerから導出した汎用クラスを使用して、パブリッシュ/サブスクライブ・システムを介して変更をパブリッシュできます。