![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Table:=false; => Error :( [D6, Paradox]
Leech © (2004-02-13 10:52:00)
По событию закрытия формы выполняю
Table:=false;, что вызывает ошибку "Table: Cannot perform this operation on a closed dataset"... Что вызывает ошибку?
Digitman (2004-02-13 11:14:00) [21]
> Leech
ошибка не здесь
если НД закрыт, то Table.Active:=False просто ничего не делает и подобного исключения вызвать не может
где-то в обработчиках каких-то событий формы (или ее контролов) , которые возбуждаются уже после отработки Table.Active:=False , есть, очевидно, обращения к методам или св-вам этой Table, управляющим статусом этого НД или позиционирующим курсор НД .. например, методы Insert, Edit, Post, Delete и т.п. гарантированно вызовут подобное исключение при закрытом НД
Leech (2004-02-13 11:10:00) [22]
2 Жук ©
Так в том и дело, что при закрытии свойство Active - "истина"... Так что по-прежнему это вызывает ошибку...
Я проверил, не нахожусь ли в режиме редактировая перед установкой значения Active в "ложь" - нет, тоже всё нормально...
Жук (2004-02-13 11:02:00) [23]
if Table.Active then Table.Active:=False;
Leech (2004-02-13 10:59:00) [24]
Прошу прощения...
Table.Active:=False;
Просто дело в том, что не в первый раз пишу приложение для БД... всегда, при открытии формы,Table.Active:=True;, а при закрытии -Table.Active:=False;... и всегда всё было в порядке...
Vlad (2004-02-13 10:55:00) [25]
> Table:=false
:-)
Не нужно этого делать. После закрытия формы таблицу закроют и высвободят память без твоего участия.