ターゲット・データベース上の変更ファイル(*.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); }
関連トピック