Ошибка Unsuccessful metadata update
Ошибка Unsuccessful metadata update
Создаю базу данных Firebird. Создаю в ней таблицы путем выполнения скрипта. Все создано успешно.
Потом пытаюсь задать вторичные ключи тоже скриптом, но получаю ошибку Unsuccessful metadata update. Object <table> is in use. Ошибка повторяется при каждой попытке ввести вторичный ключ в какую-либо таблицу.
Что за зверь?
Потом пытаюсь задать вторичные ключи тоже скриптом, но получаю ошибку Unsuccessful metadata update. Object <table> is in use. Ошибка повторяется при каждой попытке ввести вторичный ключ в какую-либо таблицу.
Что за зверь?
а) FK создаются в режиме монопольного доступа (в смысле не только коннектов, но и транзакций) к базе.
б) Созданию FK должен предшествовать коммит предыдущих действий, прямо или косвенно способных затянуть обе таблицы в кеш метаданных.
в) IBExpert во-первых, является многооконным и, соответственно, многотранзакционным инструментом, во-вторых, не всегда вовремя закрывает транзакции и отпускает хендлы.
б) Созданию FK должен предшествовать коммит предыдущих действий, прямо или косвенно способных затянуть обе таблицы в кеш метаданных.
в) IBExpert во-первых, является многооконным и, соответственно, многотранзакционным инструментом, во-вторых, не всегда вовремя закрывает транзакции и отпускает хендлы.
Короче. Либо у тебя особенный FB, либо есть ещё соединения (например, из среды Дельфи), либо не сосчитал все транзакции. Скорей всего второе, но можешь веровать и в первое, вопросы религии - дело личное.kmi писал(а):Переконнект пробовал. С тем же успехом. Пробовал закрыть все транзакции, получил сообщение, что активных транзакций нет.Merlin писал(а):Если FB 1.5 и выше - это утверждение FALSE. На FB1 в некоторых случаях требовался переконнект.