| Предыдущий | Следующий |
| 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.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.