Sends an update specification to the active database as a single string, capturing any data load errors in ppMbrError.
Syntax
ESS_FUNC_M EssUpdateEx (hCtx, Store, Unlock, UpdtSpec, ppMbrError);
Parameter | Data Type | Description |
---|---|---|
hCtx | ESS_HCTX_T | API context handle. |
Store | ESS_BOOL_T | Controls storage of data. If TRUE, data is stored in the server; if FALSE, no data is stored. |
Unlock | ESS_BOOL_T | Controls unlocking of data blocks. If TRUE, all relevant blocks which are locked will be unlocked (after data is stored, if necessary). If FALSE, no blocks are unlocked. |
UpdtSpec | ESS_STR_T | The update specification, as a single string (must be less than 32 KB). |
ppMbrError | ESS_PPMBRERR_T | Pointer to linked list of errors contained in ESS_MBRERR_T. Possible errors are:
|
Notes
The update data can either be stored in the database, or just verified and any errors returned. Also, any data blocks locked for update can be unlocked by this call.
The update specification string must be less than 32 KB long.
If the caller attempts to write data to a member it does not have permission to write to, a warning is generated, and the member is not updated.
If both the Store and Unlock flags are set to FALSE, the database merely performs a syntax check of the update specification.
Return Value
Returns zero if successful; otherwise, returns an error code and the records that caused the error.
Access
This function requires the caller to have write privilege (ESS_PRIV_WRITE) to the active database.
Example
void TestUpdateEx() { ESS_STS_T sts = ESS_STS_NOERR; ESS_PMBRERR_T pMbrError; ESS_STR_T updtSpec = ""; sts = EssUpdateEx(hCtx, ESS_TRUE, ESS_FALSE, "'Jan' 'New York' 'Actual' 'Sales' '100-10' 123 \n '100-20' 345 \n '100-30' 678", &pMbrError); printf("EssUpdateEx sts: %ld\n",sts); if(!sts) { printf("\nVerify data:\n"); VerifyDataload("'Jan' 'New York' 'Actual' 'Sales' <IDESC '100'!"); printf("\nMember Error Info:\n"); if(pMbrError) DisplayError(pMbrError); else printf("\tError structure is empty.\n"); } if(pMbrError) EssFree(hInst, pMbrError); }
See Also