![]() |
| ||
|
|
Новости |
Поиск |
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"... Что вызывает ошибку?
Anatoly Podgoretsky (2004-02-13 13:03:00) [1]
Leech (13.02.04 11:52) [18]
А чего не понятно, после того как ты закрыл, может произойти обращение в любом обработчике, их много, и даже после выхода из формы, но до ее уничтожения.
Vlad (2004-02-13 12:17:00) [2]
> Leech (13.02.04 12:13) [23]
> Почему тогда была ошибка?
Это уже вопрос к твоей 17-й строке
Leech (2004-02-13 12:13:00) [3]
Тогда объясните мне...
Table.Cancel; отменят режим Table.Edit; так?
Почему тогда была ошибка?
А ведь я пробовал ставить Table.Cancel; перед Table.Active:=False
Nerv (2004-02-13 12:07:00) [4]
Человек отказывается прислушиваться к советам, которых просил...
Leech (2004-02-13 12:04:00) [5]
Нет, извиняюсь... при запуске программы происходят события, при которых я ставлю свойство Тейбла в Эдитмоде... закомментарил... всё нормально...
Val (2004-02-13 12:01:00) [6]
>Leech (13.02.04 11:54) [19]
это истерика?
Leech (2004-02-13 11:54:00) [7]
Ха, если даже запустить программу, не делать никаких изменений и сразу закрыть (не переходя в Эдит моде, не вызывая "Пост", "Инсерт" и прочее), та же ошибка...
Leech (2004-02-13 11:52:00) [8]
2 Anatoly Podgoretsky ©
Не понял...
Leech (2004-02-13 11:51:00) [9]
В событие TFormMain.TableAfterClose вообще не заходим....
Johnmen (2004-02-13 11:44:00) [10]
>Leech (13.02.04 11:35) [12]
>Кода после Table.Active:=False нет никакого...
Это исчерпывающий ответ на уточняющий вопрос ???
Anatoly Podgoretsky (2004-02-13 11:43:00) [11]
Leech (13.02.04 11:24) [7]
Да пожалуйста, например после
Table.Active:=False
Table.Last в любом другом месте.
Val (2004-02-13 11:40:00) [12]
>Leech (13.02.04 11:35) [12]
в чем проблема, собственно, описал Digitman ©. Просто найдите, где это у вас происходит.
Digitman (2004-02-13 11:35:00) [13]
> Leech (13.02.04 11:26) [8]
> Да, я BreakPoint ставил на этой строке... Ошибка именно
> сдесь...
приведи перечень имен событий формы и всех ее контролов, которые ты обрабатываешь и в обработчиках которых происходит обращение к методам/св-вам таблицы типа Edit, Insert, Post, Delete и т.п.
Leech (2004-02-13 11:35:00) [14]
2 Johnmen ©
Кода после Table.Active:=False нет никакого...
2 Vlad ©
Сейчас гляну AfterClose...
"не нужно ее закрывать на OnDestroy, она сама закроется." Дело не в этом уже, а принципе ,чтоб разобраться, в чем проблема...
Leech (2004-02-13 11:31:00) [15]
Всё происходит нормально, если база пустая...
Johnmen (2004-02-13 11:29:00) [16]
>Leech
>Ошибка именно сдесь...
Лично у меня такой уверенности нет.
Приведи код до и код после Table.Active:=False
Vlad (2004-02-13 11:29:00) [17]
> Leech (13.02.04 11:24) [7]
Проверь событие AfterClose таблицы. Может там происходит обращение к этому НД
А вобще, если сама таблица лежит на этой форме, то не нужно ее закрывать на OnDestroy, она сама закроется.
Leech (2004-02-13 11:26:00) [18]
2 Жук ©
Да, я BreakPoint ставил на этой строке... Ошибка именно сдесь...
Leech (2004-02-13 11:24:00) [19]
2 Digitman ©
Так я закрываю активность Table при событии формы "OnDestroy"... какое может быть ещё обращение к методам? Хотя во время выполнения и вызываю программно и Insert, и Edit, и Post, и Delete... Но как это может происходить после....
Жук (2004-02-13 11:19:00) [20]
> Digitman ©
В сабже говорится, что именно строчка Table.Active:=False даёт исключение. Я так понимаю, что трассировкой это выяснилось.
Но если порассуждать, то собака зарыта не здесь.