様々なソースから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に含まれるエラーのリンク・リストへのポインタ。考えられるエラーは次のとおりです:
|
pUser |
ESS_MBRUSER_T |
SQLユーザー構造体へのポインタ(データ・ソースがSQLデータベースの場合)。SQLユーザー構造体がNULLの場合は、SQL以外のデータ・ソースを示します。 |
usabortOnError |
ESS_USHORT_T |
TRUEの場合、最初のエラーでインポートが停止します。それ以外の場合は続行します。 |
ulBufferId |
ESS_ULONG_T |
データ・ロード・バッファのID (1から999,999までの数)。データのロードが完了する前にバッファを廃棄するには、バッファを初期化する場合に使用したものと同じulBufferId番号を使用する必要があります。 |
備考
SQLソース以外では、pRulesおよびpDataのESS_OBJDEF_T構造体のAppNameおよびDbNameフィールドがNULLである場合は、hCtxにローカル・コンテキスト・ハンドルを指定し、ESS_OBJDEF_TのFileNameフィールドにはファイルへの完全修飾パスを指定する必要があります。
ローカル・オブジェクトが使用される場合は、EssCreateLocalContextを最初に呼び出す必要があります。
ppMbrErrに対して割り当てられたメモリーは、EssFreeMbrErrを使用して解放する必要があります。
戻り値
正常終了の場合は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); }
関連トピック