| Предыдущий | Следующий |
| DB_E_DUPLICATETABLEID | DB_E_NOLOCALE |
DB_E_TABLEINUSE
Что означает DB_E_TABLEINUSE
DB_E_TABLEINUSE означает, что DDL/schema operation не может быть выполнена, пока таблицу удерживает активный rowset, command, session или transaction.
Что проверить
- Найдите открытые rowsets и команды, связанные с таблицей.
- Проверьте незавершённые транзакции.
- Освобождайте зависимые объекты в правильном порядке.
- После cleanup повторите ровно исходную schema operation.
Принудительный DROP при живых handles способен нарушить ожидания provider. Сначала освободите зависимые объекты и подтвердите, что ошибка исчезает без изменения самой схемы.
Если таблицу удерживает другой процесс или сеанс, проверьте блокировки со стороны базы данных теми же средствами provider. Для собственного процесса полезно вывести список живых rowset/command objects перед DDL: это показывает, какой объект не был освобождён.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.