ソース上でのターゲット・アウトラインに対するアウトライン変更ファイル(*.CHG)に適応されます。この関数は、EssPartitionGetOtlChangesとともにバッチ処理で使用するために設計されており、変更ファイルのリストを指定できます。この関数にはフィルタを使用できます。
アプリケーションとデータベースのペアでメタデータ方向とタイプが同じパーティションが複数ある場合は、この関数をEssPartitionApplyOtlChangeFileのかわりに使用します。
構文
ESS_FUNC_M EssPartitionApplyOtlChangeFileEx (
hCtx, usFileName, ppszFileName, usDataDirectionType
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
usFileName |
ESS_USHORT_T |
アウトライン変更ファイルの数。 |
ppszFileName |
ESS_PSTR_T |
ファイル名の配列。配列サイズはusFileNameで定義します |
usDataDirectionType |
ESS_USHORT_T |
次の方向タイプ定数のいずれか:
#define ESS_PARTITION_DATA_SOURCE 0x0001
#define ESS_PARTITION_DATA_TARGET 0x0002
|
備考
EssPartitionGetOtlChangesは、変更ファイルの名前を戻します。
戻り値
正常終了の場合は0が戻され、失敗した場合はエラー・コードが戻されます。
アクセス
この関数を呼び出すには、データベース・デザイナ権限が必要です。
例
ESS_FUNC_M ESS_PartitionApplyOtlChangeFileEx (ESS_HCTX_T hCtx, ESS_HINST_T hInst)
{
ESS_FUNC_M sts;
ESS_STR_T hostname, appname, dbname;
ESS_USHORT_T usType, uscnt, dataFlowDir, *dataFlowDirs = ESS_NULL;
ESS_ULONG_T uldimfilter=0,ulmbrfilter=0,ulmbrattrfilter=0;
ESS_PARTOTL_QUERY_T MetaQuery;
ESS_PARTOTL_CHG_FILE_T MetaChangeFile;
ESS_PPART_INFO_T partitionp = NULL;
memset(&MetaQuery, 0, sizeof(ESS_PARTOTL_QUERY_T));
hostname = "local";
appname = "app1";
dbname = "src1";
usType = ESS_PARTITION_OP_LINKED;
dataFlowDir = ESS_PARTITION_DATA_SOURCE;
uldimfilter = ESS_DIMCHG_ALL;
ulmbrfilter = ESS_PARTITION_OTLMBR_ALL;
ulmbrattrfilter = ESS_PARTITION_OTLPARTITION_OTLMBRATTR_ALL;
MetaQuery.HostDatabase.pszHostName = hostname;
MetaQuery.HostDatabase.pszAppName = appname;
MetaQuery.HostDatabase.pszDbName = dbname;
MetaQuery.usOperationType = usType;
MetaQuery. usDataDirectionType = dataFlowDir;
MetaQuery.MetaFilter.TimeStamp = 0;
MetaQuery.MetaFilter.ulDimFilter = uldimfilter;
MetaQuery.MetaFilter.ulMbrFilter = ulmbrfilter;
MetaQuery.MetaFilter.ulMbrAttrFilter = ulmbrattrfilter;
sts = EssPartitionGetOtlChanges(hCtx, &MetaQuery, &MetaChangeFile);
if (!sts)
sts = EssAlloc(hInst, MetaChangeFile.usFileNum *sizeof(ESS_USHORT_T), &dataFlowDirs);
if (!sts)
for (uscnt=0;uscnt< MetaChangeFile.usFileNum;uscnt++)
dataFlowDirs[uscnt] = dataFlowDir;
if (!sts)
{
sts = EssPartitionApplyOtlChangeFile
(hCtx, MetaChangeFile.usFileNum, MetaChangeFile.ppszFileName);
printf("EssPartitionApplyOtlChangeFile sts: %ld\n",sts);
}
if(&MetaChangeFile) EssFree(hInst,&MetaChangeFile);
if(&dataFlowDirs) EssFree(hInst, &dataFlowDirs);
return(sts);
}
関連トピック