Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Обязательно закрывать области  [new]
Krushinskaya Olga
Member

Откуда:
Сообщений: 116
При выходе из приложения VFP ругается Cannot access table....
выхожу из приложения , выбирая в моем меню\Выход а там
myform.release
CLear events

в Destroy:
if used ("mytable1")
use in mytable1
ENDIF
и т.д. закрываю все области
Стоит ли это делать? т.к. когда я это закрытие не пишу, vfp ошибку не выдает.

С уважением, Ольга.
12 янв 06, 14:29    [2247925]     Ответить | Цитировать Сообщить модератору
 Re: Обязательно закрывать области  [new]
mvictor
Guest
перед выходом из vfp совершенно не ябязательно закрывать алиасы, фокс позаботся об этом сам
а ошибку тебе выдает скорее всего потому что ты закрыла алиас кот. был автоматически открыт в DataEnvironment какой то формы и если на момент закрытия приложения эта форма существует то она может пытаться закрыть уже не существующий алиас
12 янв 06, 15:07    [2248129]     Ответить | Цитировать Сообщить модератору
 Re: Обязательно закрывать области  [new]
Krushinskaya Olga
Member

Откуда:
Сообщений: 116
mvictor
перед выходом из vfp совершенно не ябязательно закрывать алиасы, фокс позаботся об этом сам
а ошибку тебе выдает скорее всего потому что ты закрыла алиас кот. был автоматически открыт в DataEnvironment какой то формы и если на момент закрытия приложения эта форма существует то она может пытаться закрыть уже не существующий алиас


да скорее всего так
а главную форму обязательно закрывать? или можно на выходе просто написать clear events и все
12 янв 06, 15:43    [2248359]     Ответить | Цитировать Сообщить модератору
 Re: Обязательно закрывать области  [new]
mvictor
Guest
Fox сам будет закрывать (удалять) все свои объекты (и соответственно будут срабатывать release, onclosequery и т.д. ивенты ) так что, скорее всего, тебе не обязятельно ее закрывать самой

другое дело, если окажется, что эти обекты друг от друга зависят, тогда возможно, тебе потребуется закрывать их самой в нужном тебе порядке
12 янв 06, 16:18    [2248576]     Ответить | Цитировать Сообщить модератору
 Re: Обязательно закрывать области  [new]
Krushinskaya Olga
Member

Откуда:
Сообщений: 116
mvictor
Fox сам будет закрывать (удалять) все свои объекты (и соответственно будут срабатывать release, onclosequery и т.д. ивенты ) так что, скорее всего, тебе не обязятельно ее закрывать самой

другое дело, если окажется, что эти обекты друг от друга зависят, тогда возможно, тебе потребуется закрывать их самой в нужном тебе порядке

да, форма у меня берет информацию с data environment.
если fox сам все закрывает, зачем тогда такие действия как

close all
clear all
12 янв 06, 16:31    [2248682]     Ответить | Цитировать Сообщить модератору
 Re: Обязательно закрывать области  [new]
Krushinskaya Olga
Member

Откуда:
Сообщений: 116
да и еще. эта ошибка не появляется, когда просто запускается форма, а потом я выхожу из программы. Хотя я и закрываю области.
а ошибка появляется, когда я создаю новую запись, и заполняю те поля, которые связаны с другими таблицами.
и тогда, если заполнила одно поле, то при закрытии проги один раз поругается "Cannot access", если внесла изменение в два поля, то два раза руганется...
я думала может связано с тем что главная таблица у меня в BufferMode=3
но я перед закрытием делаю Tableupdate

Хотя, если закрытие областей не указываю, то ошибки не возникает.
С уважением, Ольга.
12 янв 06, 16:38    [2248720]     Ответить | Цитировать Сообщить модератору
 Re: Обязательно закрывать области  [new]
mvictor
Guest
close all
clear all
- это скорее для очистки совести (на всяк. случ), конечно можно поэкспериментировать,но думаю, без них в данном случ. мона обойтись

У тебя наверное controlsource объектов привязяны непосредственно к таблице, честно говоря, я не зняю в точности как фокс с ними работает, поэтому 2 варианта:
1. в обработчике on shutdown проверять существование открытой проблемной формы и сначала закрывать ее (.release) а затем закрывать оставшиеся открытыми алиасы (если таковые имеются)
2. редактировать не непосредств. поля таблицы (не привязывать controlsource), а каким то своим методом присваивать значения контролам и сохранение данных возложить на отдельную процедуру (метод) , которая будет брать значения из контролов и вызовет какой нить sql update или replace для обновления данных в таблице

лично я предпочитаю второй вариант
12 янв 06, 19:28    [2249518]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить