| Previous | Next |
| hrExistingLogFileIsNotContiguous | hrBufferTruncated |
hrColumnNull
How to read this HRESULT
hrColumnNull means column retrieval found a genuine NULL value and therefore no payload bytes exist for that column.
The stored value is 0x880003EC (positive JET status 1004; 1004). The HRESULT carries a warning, so the call may have useful output or a valid cursor state that must be inspected. Current ESE documentation uses JET_wrnColumnNull for the corresponding published JET condition.
The first useful distinction is that NULL is semantically different from a zero-length value and from hrBufferTruncated. Start by recording the column ID, itagSequence, retrieval flags, default-value rules, and returned actual-size field.
Objects and state involved
| Diagnostic layer | column NULL state, schema limits, and caller output-buffer contracts |
|---|---|
| Relevant API surface | JetRetrieveColumn, JetSetColumn, column enumeration, and schema creation |
| Code-specific condition | column retrieval found a genuine NULL value and therefore no payload bytes exist for that column |
| Narrow corrective direction | branch on the warning before decoding the output buffer and preserve NULL in the application model |
JET warnings can carry valid output state and must not be reduced to a boolean failure. NULL, empty, defaulted, and truncated values are distinct application states.
What to collect first
- Code-specific observation: record the column ID, itagSequence, retrieval flags, default-value rules, and returned actual-size field.
Controlled remediation
- Record it,
0x880003EC, the API name, the current phase, and all live context or file owners. - Verify the condition by recording the column ID, itagSequence, retrieval flags, default-value rules, and returned actual-size field.
- Apply only the targeted fix: branch on the warning before decoding the output buffer and preserve NULL in the application model.
Related codes
It specifically means that NULL is semantically different from a zero-length value and from hrBufferTruncated. Related values below can appear in the same workflow but require a different response:
hrBufferTruncated | the caller-provided output buffer did not hold the complete value even though the engine identified the value |
|---|---|
hrColumnSetNull | a column update resulted in a NULL value as an explicit outcome |
hrTableEmpty | the table opened successfully but contains no current record for navigation |
Actions that can make diagnosis worse
- Do not replace NULL with an empty value without an explicit data-model rule.
- Do not decode an undefined or partial buffer as a complete value.
Technical references
- ESE warning table — API ordering, file semantics, warning/error interpretation, or recovery behavior relevant to this HRESULT.
- JET_ERR enumeration
- Open-source ESE implementation
Looking for a different code? Search another status or error code.