| Previous | Next |
| DB_E_NOTREENTRANT | DB_E_NOAGGREGATION |
DB_E_ERRORSOCCURRED
Meaning
Windows documents DB_E_ERRORSOCCURRED as “Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done”. Here, every element of a multi-step OLE DB operation failed and no requested work was performed.
Relevant OLE DB contract
This result must be interpreted against this contract: OLE DB error objects can contain multiple records and per-element status arrays; the aggregate HRESULT is only the entry point; consumers need the error object captured immediately after the failing provider call.
Start with the current thread error object, its record array and the provider method that installed it when investigating this result.
Diagnostic sequence
- Capture this result immediately at the native OLE DB return and obtain the current OLE DB error object before another COM call replaces thread error information.
- Identify the exact stage: every element of a multi-step OLE DB operation failed and no requested work was performed.
Specific conditions that produce it
- Cause 1: all property settings, bindings, parameter names or rows were rejected.
- Cause 2: the consumer checked only the aggregate HRESULT and ignored per-element status arrays.
- Cause 3: provider error records contain multiple independent failures from the same call.
Evidence to collect before changing the system
When it involves provider descriptions, native database messages, command fragments and row values, record types, lengths, hashes or redacted identifiers instead of secrets or full business data.
- Evidence 1: the complete per-element status array in original order.
- Evidence 2: all records from the current OLE DB error object.
- Evidence 3: the method inputs correlated to each failed element.
Corrective actions
- Action 1: inspect and report every element status before changing the request.
- Action 2: correct the individual properties, bindings or rows indicated by those statuses.
- Action 3: clear stale thread error information before the next provider call.
Retry and recovery policy
Retry rule: retry only after at least one failed element is corrected; resubmitting the identical multi-step request repeats the aggregate failure.
Difference from related HRESULT values
DB_S_ERRORSOCCURRED means some elements succeeded, while DB_E_ERRORSOCCURRED means all relevant elements failed and no work was done.
Practical incident
A property setup call returns it because every requested property is unsupported, but the wrapper logs only the HRESULT; preserving DBPROPSTATUS values exposes the real cause.
Official Microsoft references
Looking for a different code? Search another status or error code.