Что означает код HRESULT 0xC80005E3 (hrColumnNotFound)?

 
Предыдущий Следующий
hrColumnTooBig hrColumnDuplicate

hrColumnNotFound

Что означает hrColumnNotFound

hrColumnNotFound (0xC80005E3) — столбец не найден.

Это старый HRESULT-вариант результата ESE (Extensible Storage Engine, ESENT); в JET API соответствующее условие известно как JET_errColumnNotFound.

Что проверить

  • Проверьте актуальную схему: JET_COLUMNID, тип, максимальную длину, NULL-ограничения и tagged/multivalued флаги. После изменения схемы старые идентификаторы использовать нельзя.
  • Для чтения/записи сохраните длину значения, размер буфера и, для многозначного поля, itagSequence. NULL, пустое значение и отсутствующий экземпляр различаются.

Практический смысл и диагностика

  • ESE table schema не содержит column с запрошенным именем/идентификатором в текущей версии table.
  • Сохраните table/database identity, requested column name/ID и schema version/migration level, затем перечитайте metadata напрямую из engine.
  • Отличайте от `hrBadColumnId`: тот подчёркивает invalid/stale numeric `JET_COLUMNID`, тогда как `hrColumnNotFound` часто возникает уже на name/schema lookup.
  • Проверьте, применена ли требуемая schema migration и не использует ли client cached metadata от другой database/table version. Обновите schema cache и завершайте operation явной ошибкой, если обязательной column действительно нет.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.