| Previous | Next |
| DB_E_BOOKMARKSKIPPED | DB_E_INVALID |
DB_E_BADPROPERTYVALUE
Meaning
Windows documents DB_E_BADPROPERTYVALUE as “Property value is invalid”. Here, an OLE DB property is assigned a value invalid for that property.
Relevant OLE DB contract
This result must be interpreted against this contract: OLE DB objects follow both COM lifetime rules and provider-specific state contracts; open dependents, ownership transfer, aggregation, callbacks and namespace identity must be traced from the exact interface call rather than inferred from a wrapper exception.
Start with the COM object that returned the result and every dependent interface or provider-owned resource involved in the call 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: an OLE DB property is assigned a value invalid for that property.
Specific conditions that produce it
- Cause 1: the VARIANT type does not match the property's required type.
- Cause 2: the value is outside the supported enumeration or numeric range.
- Cause 3: the property conflicts with another requested property.
Evidence to collect before changing the system
- Evidence 1: the property set GUID, property ID and VARIANT type.
- Evidence 2: DBPROPSTATUS for the property.
- Evidence 3: provider property information and current conflicting values.
Corrective actions
- Action 1: query property metadata before assignment.
- Action 2: validate type and range for each property.
- Action 3: handle properties-in-error individually rather than discarding all diagnostics.
Retry and recovery policy
Retry rule: retry after correcting or removing the specific property value.
Difference from related HRESULT values
DB_E_BADVALUES is a broad invalid-value result, while DB_E_BADPROPERTYVALUE specifically identifies an OLE DB property value.
Practical incident
A rowset request sets a Boolean property using a string VARIANT; constructing the required VT_BOOL value prevents it.
Official Microsoft references
Looking for a different code? Search another status or error code.