EssImportASO

様々なソースからEssbase集約ストレージ・データベースへのデータのインポートを許可します。

構文

            ESS_FUNC_M EssImportASO (
            hCtx, pRules, pData, ppMbrErr, pUser, usabortOnError, ulBufferId
            );
         
パラメータデータ型説明

hCtx

ESS_HCTX_T

APIコンテキスト・ハンドル。

pRules

ESS_OBJDEF_T

ルール・ファイル・オブジェクト定義構造体へのポインタ。

pData

ESS_OBJDEF_T

データ・ファイル・オブジェクト定義構造体へのポインタ。

ppMbrErr

ESS_MBRERR_T

ESS_MBRERR_Tに含まれるエラーのリンク・リストへのポインタ。考えられるエラーは次のとおりです:

  • ESS_MBRERR_BADDIM

  • ESS_MBRERR_BADGEN

  • ESS_MBRERR_UNKNOWN

  • ESS_MBRERR_BADACCESS

  • ESS_MBRERR_BADSYNTAX

pUser

ESS_MBRUSER_T

SQLユーザー構造体へのポインタ(データ・ソースがSQLデータベースの場合)。SQLユーザー構造体がNULLの場合は、SQL以外のデータ・ソースを示します。

usabortOnError

ESS_USHORT_T

TRUEの場合、最初のエラーでインポートが停止します。それ以外の場合は続行します。

ulBufferId

ESS_ULONG_T

データ・ロード・バッファのID (1から999,999までの数)。データのロードが完了する前にバッファを廃棄するには、バッファを初期化する場合に使用したものと同じulBufferId番号を使用する必要があります。

備考

戻り値

正常終了の場合は0が戻され、それ以外の場合はエラー・コードが戻されます。

アクセス

この関数を使用するには、呼出し元が、指定したデータベースに対するデータベース・デザイナ権限(ESS_PRIV_DBDESIGN)を持っている必要があります。

         void TestImportASO(ESS_HCTX_T hCtx, ESS_STR_T AppName, ESS_STR_T DbName)
{
        ESS_STS_T       sts = ESS_STS_NOERR;
        ESS_SHORT_T     isAbortOnError;
        ESS_OBJDEF_T    Rules;
        ESS_OBJDEF_T    Data;
        ESS_PMBRERR_T   pMbrErr = NULL;
        ESS_PMBRUSER_T  pMbrUser = NULL;
        ESS_ULONG_T ulBufferId;
        ESS_ULONG_T     ulDuplicateAggregationMethod;
        ESS_ULONG_T     ulOptionsFlags;
        ESS_ULONG_T     ulSize;
        ESS_ULONG_T     ulBufferCnt;
        ESS_ULONG_T     ulCommitType ;
        ESS_ULONG_T     ulActionType;
        ESS_ULONG_T     ulOptions;
        ESS_ULONG_T ulBufferIdAry[1];

        ulDuplicateAggregationMethod = ESS_ASO_DATA_LOAD_BUFFER_DUPLICATES_ADD;
        ulOptionsFlags = ESS_ASO_DATA_LOAD_BUFFER_IGNORE_MISSING_VALUES;
        ulSize = 100;
        ulBufferId = 10;
        sts = EssLoadBufferInit(hCtx, AppName, DbName, ulBufferId,          ulDuplicateAggregationMethod, ulOptionsFlags, ulSize);
        printf("EssLoadBufferInit sts: %ld\n", sts);

        /* Server object */
        Rules.hCtx     = hCtx;
        Rules.AppName  = AppName;
        Rules.DbName   = DbName;
        Rules.ObjType  = ESS_OBJTYPE_RULES;
        Rules.FileName = "Dataload";
        Data.hCtx      = hCtx;
        Data.AppName   = AppName;
        Data.DbName    = DbName;
        Data.ObjType   = ESS_OBJTYPE_TEXT;
        Data.FileName  = "Dataload";
        isAbortOnError = ESS_TRUE; 

        sts = EssImportASO (hCtx, &Rules, &Data, &pMbrErr, pMbrUser,          isAbortOnError, ulBufferId);
        printf("EssImportASO sts: %ld\n",sts);
        if(pMbrErr)
              EssFreeMbrErr(hCtx, pMbrErr);

        /* Commit and delete the buffer */
        ulBufferCnt = 1;
        ulBufferIdAry[0] = ulBufferId;
        ulCommitType = ESS_ASO_DATA_LOAD_BUFFER_STORE_DATA;
        ulActionType = ESS_ASO_DATA_LOAD_BUFFER_COMMIT;
        printf("\nCommit data to the main slice:\n");
        ulOptions = ESS_ASO_DATA_LOAD_INCR_TO_MAIN_SLICE;
        sts = EssLoadBufferTerm(hCtx, AppName, DbName, ulBufferCnt,          ulBufferIdAry, ulCommitType, ulActionType, ulOptions);
        printf("EssLoadBufferTerm sts: %ld\n",sts);
}
      

関連トピック