Что означает код HRESULT 0xC800051E (hrInvalidTableId)?

 
Предыдущий Следующий
hrTableNotEmpty hrTooManyOpenTables

hrInvalidTableId

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

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

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

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

  • Зафиксируйте базу, JET_TABLEID и владеющий JET_SESID. JET_TABLEID — сеансовый курсор, поэтому его нельзя переносить между закрытиями или другими сеансами.
  • При изменении схемы проверьте открытые курсоры, транзакции и зависимости индексов/столбцов; структурная операция может требовать исключительного доступа.

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

  • `JET_TABLEID` устарел, уже закрыт либо принадлежит другой session/database.
  • `hrObjectNotFound` относится к lookup по имени; здесь недействителен сам cursor/table handle.
  • Проследите open/close/duplication, владеющий `JET_SESID`, database ID, использование между threads и возможные последствия rollback.
  • Отбросьте недействительный table ID и заново откройте таблицу через правильную живую session.

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


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