ソース上でのターゲット・アウトラインに対するアウトライン変更ファイル(*.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); }
関連トピック