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