ファイルからアクティブな集約ストレージ・データベースに対して更新指定を送信します。
構文
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);
}
関連トピック