TimesTen以外のデータ・ストアへの変更をレプリケートする場合は、ttXlaGenerateSQL関数を使用して、レコード・データをTimesTen以外のサブスクライバで読取りが可能なSQL文に変換します。更新レコードおよび削除レコードの場合は、正しいSQLを生成するために、NULL値可能ではない列に対する主キーまたは一意の索引がttXlaGenerateSQLに必要です。
ttXlaGenerateSQLは、パラメータとしてttXlaUpdateDesc_tを受け入れ、それと同等のSQL文をバッファに出力します。
たとえば、レコード(record)を変換し、その結果のSQL出力を200文字のバッファ(buffer)に保存するには、次の例のように入力します。
ttXlaUpdateDesc_t record;
char buffer[200];
SQLINTEGER actualLength;
rc = ttXlaGenerateSQL(xla_handle, &record, buffer, 200,
&actualLength);
if (rc != SQL_SUCCESS) {
handleXLAerror (rc, xla_handle, err_buf, &native_error);
if ( native_error == 8034 ) { // tt_ErrXlaNoSQL
printf("Unable to translate to SQL\n");
}
}
バッファの実際のサイズはactualLengthパラメータによって返されます。