すべてのデータ・ロード・エラーをppMbrErrorに取得して、ファイルからアクティブな集約ストレージ・データベースに更新指定を送信します。
構文
ESS_FUNC_M EssUpdateFileASOEx (
hDestCtx, hSrcCtx, AppName, DbName, FileName, Store, Unlock, ulBufferId, ppMbrError
);
パラメータ | データ型 | 説明 |
---|---|---|
hDestCtx |
ESS_HCTX_T |
サーバー上のターゲット・データベースのAPIコンテキスト・ハンドル。 |
hSrcCtx |
ESS_HCTX_T |
更新ファイルの場所に対するAPIコンテキスト・ハンドル。更新ファイルは、クライアント、またはターゲット・データベースと同一のサーバー上に配置できます。 |
AppName |
ESS_STR_T |
更新ファイルの場所のアプリケーション名。 |
DbName |
ESS_STR_T |
更新ファイルの場所のデータベース名。 |
FileName |
ESS_STR_T |
更新指定ファイル名。 |
Store |
ESS_BOOL_T |
データの保管を制御します。TRUEの場合は、データがサーバーに保管されます。FALSEの場合はデータは保管されません。 |
Unlock |
ESS_BOOL_T |
集約ストレージ・データベースではサポートされていません。このパラメータには必ずESS_FALSEを渡す必要があります。 |
ulBufferId |
ESS_ULONG_T |
データ・ロード・バッファのID番号。 |
ppMbrError |
ESS_PPMBRERR_T |
ESS_MBRERR_Tに含まれるエラーのリンク・リストへのポインタ。考えられるエラーは次のとおりです:
|
備考
StoreフラグがFALSEに設定されている場合、データベースは更新指定の構文チェックのみを行います。
戻り値
正常終了の場合は0が戻されます。それ以外の場合はエラー・コードおよびエラーの原因となったレコードが戻されます。
アクセス
この関数を使用するには、呼出し元が、アクティブなデータベースに対して書込み権限(ESS_PRIV_WRITE)を持っている必要があります。
例
void TestUpdateFileASOEx() { ESS_STS_T sts = ESS_STS_NOERR; ESS_HCTX_T hSrcCtx; ESS_BOOL_T isStore; ESS_BOOL_T isUnlock; ESS_STR_T FileName; 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]; ESS_PMBRERR_T pMbrError; ulDuplicateAggregationMethod = ESS_ASO_DATA_LOAD_BUFFER_DUPLICATES_ADD; ulOptionsFlags = ESS_ASO_DATA_LOAD_BUFFER_IGNORE_MISSING_VALUES; ulSize = 1; ulBufferId = 101; sts = EssLoadBufferInit(hCtx, AppName, DbName, ulBufferId, ulDuplicateAggregationMethod, ulOptionsFlags, ulSize); printf("EssLoadBufferInit sts: %ld\n", sts); /* Update from server*/ hSrcCtx = hCtx; isStore = ESS_TRUE; isUnlock = ESS_FALSE; FileName = "apgeaso1.txt"; sts = EssUpdateFileASOEx (hCtx, hSrcCtx, AppName, DbName, FileName, isStore, isUnlock, ulBufferId, &pMbrError); printf("EssUpdateFileASOEx sts: %ld\n",sts); if(!sts) { printf("\nMember Error Info:\n"); if(pMbrError) DisplayError(pMbrError); else printf("\tError structure is empty.\n"); } ulBufferCnt = 1; ulBufferIdAry[0] = ulBufferId; ulCommitType = ESS_ASO_DATA_LOAD_BUFFER_STORE_DATA; ulActionType = ESS_ASO_DATA_LOAD_BUFFER_COMMIT; printf("\nIncrement 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); if(!sts) { VerifyDataload("'Mar' 'Sale' 'Curr Year' 'Original Price' '017589' '13668' 'Cash' 'No Promotion' '1 to 13 Years' 'Under 20,000' 'Digital Cameras' 10\n 'Camcorders' 20\n 'Photo Printers' 30 !"); } if(pMbrError) EssFree(hInst, pMbrError); }
関連トピック