Что означает код HRESULT 0xC80005E9 (hrColumnCannotIndex)?

 
Предыдущий Следующий
hrInvalidColumnType hrTaggedNotNULL

hrColumnCannotIndex

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

hrColumnCannotIndex (0xC80005E9) — нельзя создать индекс по столбцу длинных значений.

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

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

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

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

  • Выбранный long-value либо другой неподдерживаемый column нельзя использовать как segment index key.
  • `hrIndexInvalidDef` является общим отказом определения индекса; здесь причина конкретно в capability самого column.
  • Индексируйте bounded surrogate или отдельное normalized searchable field вместо длинного payload.
  • `hrColumn2ndSysMaint` означает другой schema conflict: таблице пытаются добавить второй engine-maintained autoincrement/version column.

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


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