Распечатать страницу

Анализ ошибки 1995 в Microsoft Visual FoxPro

« Назад

Таблицы всех форм открываются в режиме разделяемого доступа. Однако таблица не откроется, если ранее она была открыта в другой рабочей области в режиме монопольного доступа. При этом возникнет ошибка с номером 1995. Эту ошибку можно обработать, например, встроив в обработчик события Error объекта DataEnvironment формы следующий код (взята форма "Виды произведений"):

lparameters nError, cMethod, nLine

&&

&& Обработчик события Error объекта DataEnvironment формы WtForm

&&

if nError = 1995 then

MessageBox("Не могу открыть таблицу WorkType!", 48)

cancel                                  && Форма отрыта не будет

else

MessageBox("Ошибка № " + Transform(nError) + " в строке " ;

+ Transform(nLine) + " метода " + cMethod, 48)

endif

Присутствие команды CANCEL предотвратит, если обнаружена ошибка с номером 1995, открытие формы.

Другой вариант избежать открытия формы состоит в том, чтобы вставить в обработчик события BeforeOpenTables объекта DataEnvironment вызов метода, добавляющего в этот объект на этапе исполнения новое свойство:

This.AddProperty('NoError', .T.)

В обработчике события Error команду CANCEL изъять, а в конец процедуры добавить оператор

This.NoError = .F.

И, наконец, в обработчике события Load формы добавить команду

return This.DataEnvironment.NoError

Тогда при возникновении ошибки загрузки окружения данных свойство NoError окружения получит значение .F., которое вернет обработчик события Load формы. Поэтому объект формы создан не будет (форма не откроется).