TTXlaRowViewer
TTXlaRowViewerクラスは、アプリケーション開発者がXLA変更通知レコードの構造を調べ、新旧の列値をフェッチできる強力なクラスです。
行を調べるには、TTXlaRowViewerオブジェクトを表(settableメソッドを介して)および行(setTupleメソッドを介して)に関連付ける必要があります。表は事前に定義されたTTXlaTableオブジェクトです。行は、TTXlaPersistConnection::fetchUpdateWaitメソッドを介してXLAによって返されるttXlaUpdateDesc_t構造体の一部です。
パブリック・メンバー
なし
パブリック・メソッド
メソッド
|
説明
|
| TTXlaRowViewerを指定された表に関連付けます。 |
| TTXlaRowViewerオブジェクトを指定された行イメージに関連付けます。 |
| 行イメージ内の特定の列がNULLであるかどうかを示します。 |
|
行イメージ内の指定された列の値をフェッチします。
|
setTable
void setTable (TTXlaTable*)
このTTXlaRowViewerを特定の表に関連付けます。
setTuple
void setTuple (ttXlaUpdateDesc_t*, int whichTuple)
このTTXlaRowViewerオブジェクトを特定の行イメージに関連付けます。
TTConnection::fetchUpdatesによって返されるttXlaUpdateDesc_t構造体に含まれる行の数は、0(ゼロ)、1または2です。
- 表に挿入された行を定義する構造体には、挿入された行の行イメージが含まれます。
- 表から削除された行を定義する構造体には、削除された行の行イメージが含まれます。
- 表内で更新された行を定義する構造体には、更新前の行イメージと更新後の行イメージが含まれます。
- 表またはデータ・ストアの他の変更を定義する構造体には、行イメージが含まれません。たとえば、索引が削除されたことをレポートする構造体には行イメージが含まれません。
setTupleメソッドは2つの引数を受け入れます。
- データベース変更を定義する特定のttXlaUpdateDesc_t構造体へのポインタ。
- 更新構造体内のどの行イメージを調べるかを指定する整数。このパラメータの値は次のとおりです。
- INSERTED_TUP: 新しく挿入された行を調べます。
- DELETED_TUP: 削除された行を調べます。
- UPDATE_OLD_TUP: 更新前の行を調べます。
- UPDATE_NEW_TUP: 更新後の行を調べます。
setTableおよびsetTupleメソッドがコールされた後、次のメソッドを使用して、更新レコードの行イメージに関する情報をフェッチできます。
isNull
bool isNull (int whichCol)
行イメージ内の特定の列がNULLである(trueを返す)かNULLでない(falseを返す)かを示します。
whichColパラメータは、問い合せる列の列番号です。
Get
void Get (int col, ...)
行イメージ内の特定の列の値をフェッチします。
これらのメソッドはTTCmd::getColumn()メソッドによく似ています。
colパラメータは、問い合せる列の列番号です。
表3.5に、サポートされるSQLデータ型と、各パラメータ型での使用に適したGetのバージョンを示します。NUMBERデータ型のバージョンは6つ、FLOATデータ型のバージョンは2つあります。格納されるデータの種類に従って、アプリケーションを設計します。たとえば、データ型NUMBER(9,0)には、Get(int, int*)
によって、データを損失することなくアクセスできます。
表3.5 サポートされるデータ型に対するTTXlaRowViewer::Getのバージョン
XLAデータ型
|
データベース・データ型
|
Getのバージョン
|
TTXLA_CHAR_TT | TT_CHAR | Get(int, char**) |
TTXLA_NCHAR_TT | TT_NCHAR | Get(int, SQLWCHAR**, int*len) |
TTXLA_VARCHAR_TT | TT_VARCHAR | Get(int, char**) |
TTXLA_NVARCHAR_TT | TT_NVARCHAR | Get(int, SQLWCHAR**, int*len) |
TTXLA_TINYINT | TT_TINYINT | Get(int, unsigned char*) |
TTXLA_SMALLINT | TT_SMALLINT | Get(int, short*) |
TTXLA_INTEGER | TT_INTEGER | Get(int, int*) |
TTXLA_BIGINT | TT_BIGINT | Get(int, SQLBIGINT*) |
TTXLA_BINARY_FLOAT | BINARY_FLOAT | Get(int, float*) |
TTXLA_BINARY_DOUBLE | BINARY_DOUBLE | Get(int, double*) |
TTXLA_DECIMAL_TT | TT_DECIMAL | Get(int, char**) |
TTXLA_TIME | TT_TIME | Get(int, TIME_STRUCT*) |
TTXLA_DATE_TT | TT_DATE | Get(int, DATE_STRUCT*) |
TTXLA_TIMESTAMP_TT | TT_TIMESTAMP | Get(int, TIMESTAMP_STRUCT*) |
TTXLA_BINARY | BINARY | Get(int, const void**, int*len) |
TTXLA_VARBINARY | VARBINARY | Get(int, const void**, int*len) |
TTXLA_NUMBER | NUMBER | Get(int, double*) Get(int, char**) Get(int, char*) Get(int, short*) Get(int, int*) Get(int, SQLBIGINT*) |
TTXLA_DATE | DATE | Get(int, TIMESTAMP_STRUCT*) |
TTXLA_TIMESTAMP | TIMESTAMP | Get(int, TIMESTAMP_STRUCT*) |
TTXLA_CHAR | CHAR | Get(int, char**) |
TTXLA_NCHAR | NCHAR | Get(int, SQLWCHAR**, int*len) |
TTXLA_VARCHAR | VARCHAR2 | Get(int, char**) |
TTXLA_NVARCHAR | NVARCHAR2 | Get(int, SQLWCHAR**, int*len) |
TTXLA_FLOAT | FLOAT | Get(int, double*) Get(int, char**) |
使用方法
変更通知レコードに含まれる行イメージから列値をフェッチするために使用されます。