![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка Exception [D6, IB6.x]
Roma111 © (2002-10-16 11:40:00)Уважаемые Знатоки, при запуске программы пользователь вводит имя и пароль, устанавливающие соответствующие права (стандартная ситуация). Обработка Exception у меня следующая:
with DataModule1.IbDatabase1 do
begin
params.Clear;
buf:=PrIni.ReadString("Data","Path", "xxx");
DatabaseName:=buf;
Params.add("user_name="+UserName);
Params.add("password="+Password);
Try
Open;
except
{on E:EIBInterbaseError do}
begin
ShowMessage("Unknow name or password!!!");
close;
Halt(0);
end;
end
Программа у меня сетевая. Везде стоят W2000.
На одних рабочих станциях Except обрабатывается нормально, на других нет и выдает системную ошибку типа "неправильная база".
Что мне делать : др. обработку Except или есть какие-то настройки в операционной системе?
Nikolay M. (2002-10-16 14:57:00) [1]
> выдает системную ошибку типа "неправильная база".
Не может быть такое, что в рантайме DataModule1.IbDatabase1.Connected у тебя равно True? Тогда ессесно при запуске программы присходит попытка подключения к базе и если коннект не проходит, то вываливается exception...
Roma111 (2002-10-16 12:08:00) [2]Виктор Щербаков
Нет, естественно, это может быть целый ряд причин :
-непр. логин
-непр. пароль
-непр. путь к базе
-нет сети
-сервер выключен
Пользователю это не нужно знать. Это мое дело. Мне нужна нормальная обработка exception, без выдачи системного expept и завешивании программы.
Виктор Щербаков (2002-10-16 11:46:00) [3]Ты делаешь смелое предположение о том, что причиной возникновения ошибки стал неправильный ввод пароля.
Попробуй посмотреть на код ошибки E.IBErrorCode, прежде чем выдать осмысленное сообщение.