Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

Table:=false; => Error :(   Найти похожие ветки 

 
Leech   (2004-02-13 10:52) [0]

По событию закрытия формы выполняю Table:=false;, что вызывает ошибку "Table: Cannot perform this operation on a closed dataset"... Что вызывает ошибку?


 
Vlad   (2004-02-13 10:55) [1]


> Table:=false

:-)
Не нужно этого делать. После закрытия формы таблицу закроют и высвободят память без твоего участия.


 
Leech   (2004-02-13 10:59) [2]

Прошу прощения... Table.Active:=False;
Просто дело в том, что не в первый раз пишу приложение для БД... всегда, при открытии формы, Table.Active:=True;, а при закрытии - Table.Active:=False;... и всегда всё было в порядке...


 
Жук   (2004-02-13 11:02) [3]

if Table.Active then Table.Active:=False;


 
Leech   (2004-02-13 11:10) [4]

2 Жук ©
Так в том и дело, что при закрытии свойство Active - "истина"... Так что по-прежнему это вызывает ошибку...
Я проверил, не нахожусь ли в режиме редактировая перед установкой значения Active в "ложь" - нет, тоже всё нормально...


 
Digitman   (2004-02-13 11:14) [5]


> Leech


ошибка не здесь
если НД закрыт, то Table.Active:=False просто ничего не делает и подобного исключения вызвать не может

где-то в обработчиках каких-то событий формы (или ее контролов) , которые возбуждаются уже после отработки Table.Active:=False , есть, очевидно, обращения к методам или св-вам этой Table, управляющим статусом этого НД или позиционирующим курсор НД .. например, методы Insert, Edit, Post, Delete и т.п. гарантированно вызовут подобное исключение при закрытом НД


 
Жук   (2004-02-13 11:19) [6]


> Digitman ©

В сабже говорится, что именно строчка Table.Active:=False даёт исключение. Я так понимаю, что трассировкой это выяснилось.
Но если порассуждать, то собака зарыта не здесь.


 
Leech   (2004-02-13 11:24) [7]

2 Digitman ©
Так я закрываю активность Table при событии формы "OnDestroy"... какое может быть ещё обращение к методам? Хотя во время выполнения и вызываю программно и Insert, и Edit, и Post, и Delete... Но как это может происходить после....


 
Leech   (2004-02-13 11:26) [8]

2 Жук ©
Да, я BreakPoint ставил на этой строке... Ошибка именно сдесь...


 
Vlad   (2004-02-13 11:29) [9]


> Leech (13.02.04 11:24) [7]

Проверь событие AfterClose таблицы. Может там происходит обращение к этому НД
А вобще, если сама таблица лежит на этой форме, то не нужно ее закрывать на OnDestroy, она сама закроется.


 
Johnmen   (2004-02-13 11:29) [10]

>Leech
>Ошибка именно сдесь...

Лично у меня такой уверенности нет.
Приведи код до и код после Table.Active:=False


 
Leech   (2004-02-13 11:31) [11]

Всё происходит нормально, если база пустая...


 
Leech   (2004-02-13 11:35) [12]

2 Johnmen ©
Кода после Table.Active:=False нет никакого...

2 Vlad ©
Сейчас гляну AfterClose...
"не нужно ее закрывать на OnDestroy, она сама закроется." Дело не в этом уже, а принципе ,чтоб разобраться, в чем проблема...


 
Digitman   (2004-02-13 11:35) [13]


> Leech (13.02.04 11:26) [8]
> Да, я BreakPoint ставил на этой строке... Ошибка именно
> сдесь...


приведи перечень имен событий формы и всех ее контролов, которые ты обрабатываешь и в обработчиках которых происходит обращение к методам/св-вам таблицы типа Edit, Insert, Post, Delete и т.п.


 
Val   (2004-02-13 11:40) [14]

>Leech (13.02.04 11:35) [12]
в чем проблема, собственно, описал Digitman ©. Просто найдите, где это у вас происходит.


 
Anatoly Podgoretsky   (2004-02-13 11:43) [15]

Leech (13.02.04 11:24) [7]
Да пожалуйста, например после
Table.Active:=False

Table.Last в любом другом месте.


 
Johnmen   (2004-02-13 11:44) [16]

>Leech (13.02.04 11:35) [12]
>Кода после Table.Active:=False нет никакого...

Это исчерпывающий ответ на уточняющий вопрос ???


 
Leech   (2004-02-13 11:51) [17]

В событие TFormMain.TableAfterClose вообще не заходим....


 
Leech   (2004-02-13 11:52) [18]

2 Anatoly Podgoretsky ©
Не понял...


 
Leech   (2004-02-13 11:54) [19]

Ха, если даже запустить программу, не делать никаких изменений и сразу закрыть (не переходя в Эдит моде, не вызывая "Пост", "Инсерт" и прочее), та же ошибка...


 
Val   (2004-02-13 12:01) [20]

>Leech (13.02.04 11:54) [19]
это истерика?


 
Leech   (2004-02-13 12:04) [21]

Нет, извиняюсь... при запуске программы происходят события, при которых я ставлю свойство Тейбла в Эдитмоде... закомментарил... всё нормально...


 
Nerv   (2004-02-13 12:07) [22]

Человек отказывается прислушиваться к советам, которых просил...


 
Leech   (2004-02-13 12:13) [23]

Тогда объясните мне...
Table.Cancel; отменят режим Table.Edit; так?
Почему тогда была ошибка?
А ведь я пробовал ставить Table.Cancel; перед Table.Active:=False


 
Vlad   (2004-02-13 12:17) [24]


> Leech (13.02.04 12:13) [23]


> Почему тогда была ошибка?

Это уже вопрос к твоей 17-й строке


 
Anatoly Podgoretsky   (2004-02-13 13:03) [25]

Leech (13.02.04 11:52) [18]
А чего не понятно, после того как ты закрыл, может произойти обращение в любом обработчике, их много, и даже после выхода из формы, но до ее уничтожения.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.014 c
1-43590
Ivolg
2004-03-02 17:30
2004.03.14
Дата


14-43773
raptorus
2004-01-23 13:57
2004.03.14
Уважаемые, Мастера, подскажите как создать файл помощи .hlp?


1-43551
Fants
2004-02-27 19:07
2004.03.14
TreeView


1-43493
TUser
2004-02-27 11:37
2004.03.14
Отладчик


3-43339
OlegM
2004-02-17 07:46
2004.03.14
Синхронизация баз





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский