![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
При выполнении запроса на ALTER TABLE получаю "Table is busy" [D5, Paradox]
The X © (2007-05-29 14:13:00)Необходимо программно изменить структуру таблицы Paradox посредством ALTER TABLE. В программе много TTable и TQuery, некоторые из них связаны с этой таблицей. Получаю сообщение, что таблица занята пользователем.
Что делалось:
1) Программно перед запросом на изменение отключаю от этой таблицы все связанные с ней TTable. Не помогает.
2) Нахожу в коде места, в которых одновременно с этим ALTER TABLE по времени открыт TQuery, к-рый связан с этой таблицей --- для всех их делаю Query.Close. Не помогает.
3) Проверяю работу ALTER TABLE не из run-time --- не помогает.
Где еще могут быть подключенные хвосты к этой таблице?
Loginov Dmitry (2007-05-30 08:24:00) [1]> Необходимо программно изменить структуру таблицы Paradox
> посредством ALTER TABLE.
Для изменения структуры таблицы Paradox предназначена функция dbiDoRestructure
ЮЮ (2007-05-30 04:17:00) [2]
> Я прекращаю работу в design time и делаю проверку - не помогает.
> Т.е. в Delphi они-то открыты, но Delphi я закрываю.
И как тогда отлаживаьться будешь?
Самое нормальное решение - в IDE все наборы данных должны мыть закрыты. А открывать в Runtime. Тогда таблица будет действительно открыта только один раз и её закрытие будет управляемым в RunTime
3) Проверяю работу ALTER TABLE не из run-time --- не помогает.
А это как?
The X (2007-05-29 17:06:00) [3]Я прекращаю работу в design time и делаю проверку - не помогает. Т.е. в Delphi они-то открыты, но Delphi я закрываю.
Плохиш (2007-05-29 16:40:00) [4]Вот ведь, блин, опять в "ю" не попадаю :-))
Плохиш (2007-05-29 16:39:00) [5]
> AndreyV © (29.05.07 16:34) [4]
> А в самой Delphi они, часом, не открыты?
Пришёл и разрушил вся развлекаловку :-))
AndreyV (2007-05-29 16:34:00) [6]А в самой Delphi они, часом, не открыты?
The X (2007-05-29 16:02:00) [7]Пробовал и Table.Active = False и Table.Exclusive = True и на связанных Query.Destroy (кстати при этом нет физически файла C:\PDOXUSRS.NET, к-рый отвечает за блокировку доступа и который надо вручную удалить) - ничего не получается. Есть еще вариант насчет перезагрузки компьютера - бред. Вот в этом случае что еще может быть, кроме "хвостов на мамином или папином компьютере"?
Reindeer Moss Eater (2007-05-29 15:09:00) [8]Где еще могут быть подключенные хвосты к этой таблице?
На мамином компьютере вполне могут быть. Или на папином.
Savek (2007-05-29 15:00:00) [9]Отсюда не видно (