EssUpdateFileASO

ファイルからアクティブな集約ストレージ・データベースに対して更新指定を送信します。

構文

            ESS_FUNC_M EssUpdateFileASO (
            hDestCtx, hSrcCtx, AppName, DbName, 
FileName, Store, Unlock, ulBufferId
            );
         
パラメータデータ型説明

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番号。

備考

StoreフラグがFALSEに設定されている場合、データベースは更新指定の構文チェックのみを行います。

戻り値

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

アクセス

この関数を使用するには、呼出し元が、アクティブなデータベースに対して書込み権限(ESS_PRIV_WRITE)を持っている必要があります。

         void TestUpdateFileASO(ESS_HCTX_T hCtx, ESS_STR_T AppName, ESS_STR_T DbName)
{
        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];

        ulDuplicateAggregationMethod = ESS_ASO_DATA_LOAD_BUFFER_DUPLICATES_ADD;
        ulOptionsFlags = ESS_ASO_DATA_LOAD_BUFFER_IGNORE_MISSING_VALUES;
        ulSize = 100;
        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 = "data1.txt";

        sts = EssUpdateFileASO (hCtx, hSrcCtx, AppName, DbName, FileName, isStore, isUnlock, ulBufferId);
        printf("EssUpdateFileASO sts: %ld\n",sts);

        /* 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("\nLoad 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);
}
      

関連トピック