| Previous | Next |
| DB_E_BADPARAMETERNAME | DB_E_CANTFILTER |
DB_E_MULTIPLESTORAGE
Meaning
Windows documents DB_E_MULTIPLESTORAGE as “Multiple storage objects cannot be open simultaneously”. In this case, a second storage object is opened where the provider permits only one simultaneous storage object for the row or source.
Evidence to collect
When recording diagnostic data involving BLOB contents, object URLs and storage metadata, use types, lengths, hashes or redacted identifiers rather than secrets or complete business data.
- Evidence 1: all live storage interface pointers for the row.
- Evidence 2: column or source associated with each object.
- Evidence 3: provider properties controlling multiple storage objects.
Relevant contract
Storage-object access transfers COM interface pointers for long or object-valued data. Some providers allow only one live storage object for a row or source, and every returned handle or interface remains scoped to the object and operation that created it.
Investigation of this result should start with the row, source handle and every open ISequentialStream, IStream or provider-specific storage interface.
Conditions that specifically lead to it
- Cause 1: an earlier IStream or ISequentialStream remains unreleased.
- Cause 2: two columns are opened concurrently on a sequential provider.
- Cause 3: an exception path retains a hidden storage wrapper.
Diagnostic sequence
- Identify the exact failing stage: a second storage object is opened where the provider permits only one simultaneous storage object for the row or source.
Corrective actions
- Action 1: read or write long values sequentially.
- Action 2: release each storage interface before opening the next.
- Action 3: make storage wrappers deterministic and noncopyable.
Practical scenario
A BLOB exporter opens two sequential streams from the same row; serializing column reads avoids the provider limitation.
Retry and recovery
Retry rule: retry after every conflicting storage object has been released.
Difference from nearby HRESULT values
DB_E_OBJECTOPEN reports an open dependent object blocking another operation, while DB_E_MULTIPLESTORAGE specifically rejects simultaneous storage objects.
Official Microsoft references
Looking for a different code? Search another status or error code.
