| Previous | Next |
| DB_E_ALREADYINITIALIZED | DB_E_MAXPENDCHANGESEXCEEDED |
DB_E_NOTSUPPORTED
Meaning
Windows documents DB_E_NOTSUPPORTED as “Method is not supported by this provider”. In this case, the consumer invokes an optional OLE DB method or capability that the active provider object does not support.
Relevant contract
Accessors are created on a specific command or rowset and encode direction, purpose, bound parts and buffer ownership. A valid HACCESSOR on one object is not interchangeable with a parameter accessor, a readable row accessor or an accessor created for another generation.
Investigation of this result should start with the object that created the accessor, its DBACCESSORFLAGS and every DBBINDING entry.
Diagnostic sequence
- Identify the exact failing stage: the consumer invokes an optional OLE DB method or capability that the active provider object does not support.
Conditions that specifically lead to it
- Cause 1: the interface exists but the particular method path is optional.
- Cause 2: the requested feature was assumed from another provider.
- Cause 3: capability properties were requested but not actually granted.
Evidence to collect
A useful diagnostic event records provider CLSID and version, process architecture, interface IID and method, object correlation ID, transaction state and the immediately preceding HRESULT. When recording diagnostic data involving parameter values, row values and provider-owned storage pointers, use types, lengths, hashes or redacted identifiers rather than secrets or complete business data.
- Evidence 1: provider CLSID and version.
- Evidence 2: the exact interface and method.
- Evidence 3: relevant granted properties and QueryInterface results.
Corrective actions
- Action 1: feature-detect the operation on the active object.
- Action 2: use a documented fallback with equivalent semantics.
- Action 3: fail explicitly when no safe fallback preserves the contract.
Retry and recovery
Retry rule: retry only after selecting a provider, object type or feature path that reports support.
Difference from nearby HRESULT values
E_NOINTERFACE means the interface itself is unavailable, while DB_E_NOTSUPPORTED can reject a method or operation within the OLE DB contract.
Practical scenario
A data layer assumes every provider supports asynchronous binding; capability negotiation selects a synchronous path instead. Keeping it with the method and object state makes this scenario diagnosable instead of reducing it to “database error”.
Official Microsoft references
Looking for a different code? Search another status or error code.
