ターゲット・データベース上の変更ファイル(*.CHG)から、変更をメモリーに読み込みます。この関数は、EssPartitionGetOtlChangesを呼び出した後に、EssPartitionApplyOtlChangeRecsを使用して対話的に使用するように設計されています。この関数にはフィルタを使用できます。
構文
ESS_FUNC_M EssPartitionReadOtlChangeFile (
hCtx, pSelectMetaRecords, pMetaChangeRead
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
pSelectMetaRecords |
ESS_PARTOTL_SELECT_CHG_T |
読み取るレコードの選択条件。 |
pMetaChangeRead |
ESS_PREAD_T |
ファイルから読み取られたメタ変更レコードへのポインタ。 |
備考
このルーチンではpMetaChangeReadに時刻が戻されます。ターゲット・データベースのタイム・スタンプを更新するためにEssPartitionApplyOtlChangeRecsに渡すタイム・スタンプと同じです。また、適用されたレコードをパージするために使用するEssPartitionPurgeOtlChangeFileのタイム・スタンプとも同じです。
戻り値
正常終了の場合は0が戻され、失敗した場合はエラー・コードが戻されます。
アクセス
この関数を呼び出すには、データベース・デザイナのアクセス権限が必要です。
例
ESS_FUNC_M ESS_PartitionReadOtlChangeFile(ESS_HCTX_T hCtx, ESS_HINST_T hInst)
{
ESS_FUNC_M sts;
ESS_STR_T chgfilename;
ESS_TIME_T time;
ESS_PARTOTL_CHANGE_API_T OtlChg;
ESS_ULONG_T uldimfilter=0,ulmbrfilter=0,ulmbrattrfilter=0;
ESS_PARTOTL_SELECT_CHG_T SelectMetaRecords;
ESS_PARTOTL_READ_T MetaChangeRead;
memset(&OtlChg, 0, sizeof(ESS_PARTOTL_CHANGE_API_T));
memset(&SelectMetaRecords, 0, sizeof(ESS_PARTOTL_SELECT_CHG_T));
memset(&MetaChangeRead, 0, sizeof(ESS_PARTOTL_READ_T));
chgfilename = "d:\\essbase5\\app\\app1\\trg1\\ess00001.chg";
time = 0;
uldimfilter = ESS_DIMCHG_ALL;
ulmbrfilter = ESS_PARTITION_OTLMBR_ALL;
ulmbrattrfilter = ESS_PARTITION_OTLMBRATTR_ALL;
SelectMetaRecords.pszFileName = chgfilename;
SelectMetaRecords.QueryFilter.TimeStamp = time;
SelectMetaRecords.QueryFilter.ulDimFilter = uldimfilter;
SelectMetaRecords.QueryFilter.ulMbrFilter = ulmbrfilter;
SelectMetaRecords.QueryFilter.ulMbrAttrFilter = ulmbrattrfilter;
MetaChangeRead.pOtlChg = &OtlChg;
sts = EssPartitionReadOtlChangeFile (hCtx, &SelectMetaRecords, &MetaChangeRead);
printf("EssPartitionReadOtlChangeFile sts: %ld\n",sts);
sts = EssPartitionFreeOtlChanges(hCtx);
printf("\tEssPartitionFreeOtlChanges sts: %ld\n",sts);
return(sts);
}
関連トピック