更新レコードの結果を示すSQL文を生成します。生成された文は、データ・ストアにもデータベースにも適用されません。かわりに、文は、最大サイズがmaxLenパラメータによって指定される特定のバッファに返されます。バッファの実際のサイズはactualLenによって返されます。更新および削除のレコードの場合、正しいSQLを生成するために、ttXlaGenerateSQLには、NULL値可能でない列に対する主キー索引または一意索引が必要です。
生成されたSQL文は、XLAハンドルのODBC接続に関係付けられている接続キャラクタ・セットでエンコードされます。
この関数の使用方法については、「TimesTen以外のデータ・ストアへの更新のレプリケート」を参照してください。
SQLRETURN ttXlaGenerateSQL(ttXlaHandle_h handle,
ttXlaUpdateDesc_t *record,
out char *buffer,
SQLINTEGER maxLen,
out SQLINTEGER *actualLen)
パラメータ | 型 | 説明 |
handle | ttXlaHandle_h | データ・ストアのトランザクション・ログ・ハンドル。 |
record | SQLに変換されるレコード。 |
|
buffer | out char * | 変換されたSQL文の場所。 |
maxLen | SQLINTEGER | bufferの最大長。 |
actualLen | out SQLINTEGER * | bufferの実際の長さ。 |
コールが成功すると、SQL_SUCCESSが返されます。返されない場合は、ttXlaErrorを使用してエラーをレポートします。
この例では、更新レコードによって表現されるUPDATEに相当するSQL文のテキストを生成します。
ttXlaUpdateDesc_t record;
char buffer[200];
/*
* Get the desired update record into the varable record.
*/
SQLINTEGER actualLength;
rc = ttXlaGenerateSQL(xlahandle, &record, buffer, 200,
&actualLength);
ttXlaGenerateSQLは、削除された表、またはレコードが生成された後で変更された表に関連付けられている更新レコードに対してはSQL文を生成できません。