EssPartitionApplyOtlChangeFileEx

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

関連トピック