What does HRESULT 0x880003EC (hrColumnNull) mean?

 
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 layercolumn NULL state, schema limits, and caller output-buffer contracts
Relevant API surfaceJetRetrieveColumn, JetSetColumn, column enumeration, and schema creation
Code-specific conditioncolumn retrieval found a genuine NULL value and therefore no payload bytes exist for that column
Narrow corrective directionbranch 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

  1. Record it, 0x880003EC, the API name, the current phase, and all live context or file owners.
  2. Verify the condition by recording the column ID, itagSequence, retrieval flags, default-value rules, and returned actual-size field.
  3. 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:

hrBufferTruncatedthe caller-provided output buffer did not hold the complete value even though the engine identified the value
hrColumnSetNulla column update resulted in a NULL value as an explicit outcome
hrTableEmptythe 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


Looking for a different code? Search another status or error code.