TTXlaTableHandlerリファレンス

TTXlaTableHandlerクラスは、表の変更追跡を有効および無効にするメソッドを提供します。また、XLAからの更新通知レコードを処理するメソッドも提供します。

パブリック・メンバー

なし

保護メンバー

メンバー 説明

TTXlaTable tbl

これは処理対象の表に関連付けられたメタデータ用です。

TTXlaRowViewer row

これは、ユーザーが記述したHandleInsert()HandleDelete()およびHandleUpdate()メソッド内の挿入または削除対象の行、更新対象の行の古いイメージを参照するために使用します。

TTXlaRowViewer row2

これは、ユーザーによって記述されたHandleUpdate()メソッド内の更新対象行の新しいイメージを参照するために使用します。

パブリック・メソッド

この項では、TTXlaTableHandlerパブリック・メソッドの概要を説明します。

パブリック・メソッドの概要

メソッド 説明

DisableTracking()

表のXLA更新追跡を無効にします。

EnableTracking()

表のXLA更新追跡を有効にします。

generateSQL()

特定のXLAレコードに関連付けられたSQLを返します。

HandleChange()

ttXlaUpdateDesc_tからレコードを適切な処理ルーチンにディスパッチして処理します。

HandleDelete()

削除操作を処理する際、HandleChange()メソッドのコール時にこれは起動されます。

HandleInsert()

これは、挿入操作を処理する際にHandleChange()メソッドがコールされるとき、起動されます。

HandleUpdate()

これは、更新操作を処理する際にHandleChange()メソッドがコールされるとき、起動されます。

DisableTracking()

virtual void DisableTracking()

表のXLA更新追跡を無効にします。このメソッドがコールされると、XLAブックマークでは、それ以降表に対する変更の情報を取得しなくなります。

EnableTracking()

virtual void EnableTracking()

表のXLA更新追跡を有効にします。このメソッドがコールされるまで、XLAブックマークでは、表に対する変更の情報を取得しません。

generateSQL()

void generateSQL (ttXlaUpdateDesc_t* updateDescP, char* buffer, 
                  SQLINTEGER maxByteLen, SQLINTEGER* actualByteLenP)

このメソッドでは、特定のXLAレコードに関連付けられたSQLを出力します。SQL文字列は、bufferパラメータを介して返されます。バッファに領域を割り当て、最大長をmaxByteLenで指定します。actualByteLenPパラメータは、返されたSQL文字列の実際の長さの情報を返します。

maxByteLenが生成されたSQL文字列の長さよりも短い場合、TTStatusエラーがスローされ、bufferおよびactualByteLenPの内容は変更されません。

HandleChange()

virtual void HandleChange(ttXlaUpdateDesc_t* updateDescP)
virtual void HandleChange(ttXlaUpdateDesc_t* updateDescP, void* pData)

ttXlaUpdateDesc_tオブジェクトを適切な処理ルーチンにディスパッチして処理します。更新記述が分析され、それが削除、挿入または更新操作のいずれであるかが判別されます。その後、適切な処理メソッド(HandleDelete()HandleInsert()またはHandleUpdate())がコールされます。

TTXlaTableHandlerから継承されるクラスでは、TTXlaTableHandler::HandleChange()メソッドをオーバーロードする際にオプションでpDataパラメータを使用できます。このオプションのパラメータは、処理されたばかりのXLAレコードのバッチがトランザクションの範囲内で終了したか判断するのに便利です。これを把握していると、アプリケーションでTTConnection::ackUpdates()を起動する適切なタイミングを判断できます。pDataパラメータの使用例は、トランザクション境界におけるXLA更新の確認を参照してください。

TTXlaTableListオブジェクトについてはHandleChange()も参照してください。

HandleDelete()

virtual void HandleDelete(ttXlaUpdateDesc_t* updateDescP) = 0

このメソッドは、削除操作を処理するためにHandleChange()メソッドがコールされるたびに起動されます。

HandleDelete()TTXlaTableHandler基本クラスには実装されていません。それを導出したクラスから、削除した行を処理する適切なロジックとともに実装する必要があります。

表から削除された行は、型TTXlaRowViewerrow保護メンバーを介して利用できます。

HandleInsert()

virtual void HandleInsert(ttXlaUpdateDesc_t* updateDescP) = 0

このメソッドは、挿入操作を処理するためにHandleChange()メソッドがコールされるたびに起動されます。

HandleInsert()TTXlaTableHandler基本クラスには実装されていません。それを導出したクラスから、挿入した行を処理する適切なロジックとともに実装する必要があります。

表に挿入された行は、型TTXlaRowViewerrow保護メンバーを介して利用できます。

HandleUpdate()

virtual void HandleUpdate(ttXlaUpdateDesc_t* updateDescP) = 0

このメソッドは、更新操作を処理するためにHandleChange()メソッドがコールされるたびに起動されます。

HandleUpdate()TTXlaTableHandler基本クラスには実装されていません。それを導出したクラスから、更新した行を処理する適切なロジックとともに実装する必要があります。

表から更新された行の以前のバージョンは、型TTXlaRowViewerrow保護メンバーを介して利用できます。行の新しいバージョンは、こちらも型はTTXlaRowViewerであるrow2保護メンバーを介して利用できます。