Что означает код HRESULT 0xC80005E6 (hrColumn2ndSysMaint)?

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

hrColumn2ndSysMaint

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

hrColumn2ndSysMaint (0xC80005E6) — в таблице допускается только один столбец автоинкремента или версии.

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

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

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

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

  • ESE table пытаются добавить второй engine-maintained autoincrement либо version column.
  • Оставьте один system-maintained autoincrement/version role; дополнительные sequence/version values храните как application data.
  • Перечислите column flags и найдите уже существующую system-maintained column.
  • `hrCannotBeTagged` означает неподдерживаемые tagged/multivalued semantics для autoincrement/version column, а не наличие второй такой column.

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


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