EssUpdateFileASOEx

すべてのデータ・ロード・エラーを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に含まれるエラーのリンク・リストへのポインタ。考えられるエラーは次のとおりです:

  • AD_MSGDL_ERRORLOAD - アイテム/レコード[number]でのデータロードができません。

  • ESS_MBRERR_BADDATA - データ列に無効なメンバー[membername]があります。

  • ESS_MBRERR_DBACCESS - このデータベースでのロックの実行に必要なアクセス権がありません。

  • ESS_MBRERR_DUPLICATE - データ・レコードの同一次元に重複メンバーがあります。[number]レコードが完了しました。

  • ESS_MBRERR_UNKNOWN - データのロード時に不明なメンバー[membername]が見つかりました。[number]レコードが戻されました。。

備考

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);
}
      

関連トピック