Starts sending an update specification to the active database, and can unlock any data blocks locked for update. The update data can either be stored in the database, or just verified and any errors returned.
Syntax
ESS_STS_T EssBeginDataloadEx (hCtx, Store, Unlock, abortOnError, pRules, fullMbrNames);
Parameter | Data Type | Description |
---|---|---|
hCtx | ESS_HCTX_T | API context handle. |
Store | ESS_BOOL_T | Controls storage of data.
|
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. |
abortOnError; | ESS_BOOL_T | If TRUE, data load stops on the first error. Otherwise, data load continues. |
pRules | ESS_OBJDEF_T | Pointer to the rules file object definition structure. |
fullMbrNames | ESS_BOOL_T | If TRUE, the error log prints full member names for the entire record. |
Notes
EssBeginDataloadEx must be followed by at least one call to EssSendString to send the update specification, and then a call to EssEndDataloadEx.
Each string passed to EssSendString following EssBeginDataloadEx must be terminated with a carriage return/linefeed character sequence ("\r\n").
If both the Store and Unlock flags are set to FALSE, the database merely performs a syntax check of the update specification.
Unlike EssBeginUpdate, which ignores input rows (records) after an improper input row, EssBeginDataloadEx processes the remaining input rows, and commits them if appropriate.
EssEndDataload returns a linked list of errors in ESS_MBRERR_T.
Unicode clients using the C Main API to communicate with Unicode-enabled Essbase applications must send the UTF-8 encoded Unicode byte order mark (BOM) in the text stream immediately after calling this function. For an example, see Specifying the Byte Order Encoding.
Return Value
None.
Access
EssBeginDataloadEx() requires the caller to have write privilege (ESS_PRIV_WRITE) to the active database.
Example
ESS_STS_T sts = ESS_STS_NOERR; ESS_BOOL_T Store; ESS_BOOL_T Unlock; ESS_STR_T Query1, Query2; ESS_PMBRERR_T pMbrErr; Store = ESS_TRUE; Unlock = ESS_FALSE; Query1 = "Year Market Scenario Measures Product 12345"; Query2 = " Jan East Scenario Measures Coke 125"; /* Begin Update */ sts = EssBeginDataloadEx(hCtx, Store, Unlock, ESS_FALSE, ESS_NULL, ESS_TRUE); /* Send update specification */ if(!sts) sts = EssSendString(hCtx, Query1); sts = EssSendString(hCtx, Query2); /* End Update */ if(!sts) sts = EssEndDataload(hCtx, &pMbrErr);
See Also