集約ストレージ・データベース上でデータ・ロードを開始します。
構文
ESS_FUNC_M EssBeginDataloadASO (
hCtx, Store, Unlock, abortOnError, pRules, ulBufferId
);
パラメータ | データ型 | 説明 |
---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
Store |
ESS_BOOL_T |
データの保管を制御します。ESS_TRUEの場合は、データがサーバーに保管され、ESS_FALSEの場合はデータは保管されません。 |
Unlock |
ESS_BOOL_T |
集約ストレージ・データベースではサポートされていません。このパラメータには必ずESS_FALSEを渡す必要があります。 |
abortOnError |
ESS_BOOL_T |
ESS_TRUEは、プロセス中にエラーが発生した場合、データ・ロードが中止されることを示しています。 |
pRules |
ESS_OBJDEF_T |
ルール・ファイル・オブジェクト定義構造体へのポインタ。 |
ulBufferId |
ESS_ULONG_T |
データ・ロード・バッファのID。データのロードが完了する前にバッファを廃棄するには、バッファの初期化に使用したのと同じulBufferId番号を使用する必要があります。 |
備考
この関数の後に、EssSendStringを少なくとも1回呼び出して更新指定を送信し、次にEssEndDataloadを呼び出す必要があります。
EssBeginDataloadASOの後に呼び出したEssSendStringへ渡される各文字列の末尾は、改行復帰文字シーケンス("\r\n")である必要があります。
StoreフラグがFALSEに設定されている場合、データベースは更新指定の構文チェックのみを行います。
Unicode対応Essbaseアプリケーションとの通信にCのメインAPIを使用するUnicodeクライアントは、この関数の呼出し直後に、テキスト・ストリーム内のUTF-8でエンコードされたバイト・オーダー・マーク(BOM)を送信する必要があります。例としては、バイト・オーダー・エンコーディングの指定を参照してください。
戻り値
正常終了の場合は0が戻され、それ以外の場合はエラー・コードが戻されます。
アクセス
この関数を使用するには、呼出し元が、アクティブなデータベースに対して書込み権限(ESS_PRIV_WRITE)を持っている必要があります。
例
void TestBeginDataloadASO(ESS_HCTX_T hCtx, ESS_STR_T AppName, ESS_STR_T DbName) { ESS_STS_T sts = ESS_STS_NOERR; ESS_BOOL_T Store; ESS_BOOL_T Unlock; ESS_BOOL_T abortOnError; ESS_STR_T loadString; ESS_OBJDEF_T rulesFile; ESS_PMBRERR_T pMbrErr; 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]; /* EssLoadBufferInit */ ulDuplicateAggregationMethod = ESS_ASO_DATA_LOAD_BUFFER_DUPLICATES_ADD; ulOptionsFlags = ESS_ASO_DATA_LOAD_BUFFER_IGNORE_MISSING_VALUES; ulSize = 100; ulBufferId = 201; sts = EssLoadBufferInit(hCtx, AppName, DbName, ulBufferId, ulDuplicateAggregationMethod, ulOptionsFlags, ulSize); printf("EssLoadBufferInit sts: %ld\n", sts); /* EssBeginDataloadASO, EssSendString, EssEndDataload */ Store = ESS_TRUE; Unlock = ESS_FALSE; abortOnError = ESS_FALSE; loadString = "Mar Sale \"Curr Year\" \"Original Price\" \"017589\" \"13668\" Cash \"No Promotion\" \"1 to 13 Years\" \"Under 20,000\" \"Digital Cameras\" 111"; sts = EssBeginDataloadASO (hCtx, Store, Unlock, abortOnError, ESS_NULL, ulBufferId); printf("EssBeginDataloadASO sts: %ld\n",sts); sts = EssSendString(hCtx, loadString); printf("EssSendString sts: %ld\n",sts); sts = EssEndDataload(hCtx, &pMbrErr); printf("EssEndDataload sts: %ld\n",sts); /* EssLoadBufferTerm */ ulBufferCnt = 1; ulBufferIdAry[0] = ulBufferId; ulCommitType = ESS_ASO_DATA_LOAD_BUFFER_STORE_DATA; ulActionType = ESS_ASO_DATA_LOAD_BUFFER_COMMIT; printf("\Commit data to main slice and destroy buffer:\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); }
関連トピック