Что означает код HRESULT 0xC80005ED (hrBadColumnId)?

 
Предыдущий Следующий
hrKeyIsMade hrBadItagSequence

hrBadColumnId

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

hrBadColumnId (0xC80005ED) — недопустимый идентификатор столбца.

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

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

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

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

  • Переданный numeric `JET_COLUMNID` недопустим для текущей ESE table definition — обычно он stale, относится к другой table или пережил schema change.
  • Проследите, где именно был получен ID, к какой table/database identity он привязан и когда последний раз обновлялся schema cache.
  • Отличайте от `hrColumnNotFound`: там поиск column по schema/name не дал результата, а здесь caller уже передал конкретный numeric ID, который engine не принимает.
  • После schema migration/reopen заново запросите column metadata и scope cached IDs строго к exact table definition; не переносите `JET_COLUMNID` между tables или database instances.

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


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