Что означает код HRESULT 0xC80005F1 (hrCannotBeTagged)?

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

hrCannotBeTagged

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

hrCannotBeTagged (0xC80005F1) — столбцы AutoIncrement и Version не могут быть многозначными.

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

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

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

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

  • Autoincrement либо version column был объявлен с tagged/multivalued storage semantics, которые для него не поддерживаются.
  • `hrColumn2ndSysMaint` означает попытку добавить второй engine-maintained column; здесь отвергнут именно storage form.
  • Определяйте engine-maintained columns в поддерживаемой fixed форме, а multivalued data храните отдельно.
  • Если уже существует engine-maintained autoincrement/version column, отдельно проверьте и `hrColumn2ndSysMaint` как возможный schema conflict.

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


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