Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

try...except при коннекции   Найти похожие ветки 

 
Explorer   (2002-07-01 13:00) [0]

Мастера!
Подскажите, как мне обработать исключение EDBEngineError в try...except, если, например, не правильно набран логин или пароль при доступе к БД (MSSQL)?


 
Игорь Шевченко   (2002-07-01 13:02) [1]

А что надо сделать в случае except ?


 
Skier   (2002-07-01 13:10) [2]

>Explorer
Так что ли ?

try
//invalid login or password
except
on EDBEngineError do begin
// твоя реакция на EDBEngineError
//raise - если нужно...
end;
end;


 
Explorer   (2002-07-01 14:35) [3]

>Игорь Шевченко ©
Выдать сообщение("Не правильный пароль или логин") и закрыть приложение.

>Skier ©
А вот как проверить, что пользователь ввел не правильный логин или пароль?
Что надо после try... писать?


 
Skier   (2002-07-01 14:53) [4]

> Explorer
Не надо проверять.
При неправильном пароле и логине будет генерится
exception - EDBEngineError, и тебе нужно его "взять" на себя,
т.е. нужно написать примерно так :


try
//допустим здесь вводится неправильный пароль или логин
except
on EDBEngineError do
ShowMessage("Не правильный пароль или логин !")
end; //try



 
Игорь Шевченко   (2002-07-01 15:18) [5]

Анализировать код ошибки в EDBEngineError надо.

Для Interbase я делал так:


procedure TMainDataModule.DoConnect;
var I, RetryCount : Integer;
IllegalUser : Boolean;
begin
try
RetryCount := 0;
with MainDatabase do
repeat
IllegalUser := false;
if Assigned (Application.MainForm) then
SendMessage( Application.MainForm.Handle, WM_DBCONNECTSTARTED, 0, 0);
if Connected then
Close();
try
Open();
except
on E : EDBEngineError do begin
for I:=0 to Pred(E.ErrorCount) do
with E.Errors[i] do
if ErrorCode=$3303 then begin
IllegalUser := true;
Inc(RetryCount);
ShowMessage(E.Message);
end;
if NOT IllegalUser then
raise;
end;
end;
if RetryCount >= 3 then
raise Exception.Create("Слишком много неверных попыток войти в систему");
until Connected;
except
ShowMessageFmt("Исполнение программы будет завершено: %s",
[(ExceptObject() AS Exception).Message]);
Application.ShowMainForm := false;
Application.Terminate();
end;
end;




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

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.008 c
14-70870
Matrix II
2002-06-24 07:01
2002.07.22
Привет всем!!!,я хочу написать программу


3-70624
ize
2002-06-28 16:59
2002.07.22
помогите чайнику организовать поиск в таблице DBF (FoxPro)


3-70616
62mkv
2002-06-20 10:24
2002.07.22
можно ли добавить индекс по lookup-полю ??


1-70704
Alexandr
2002-07-11 12:41
2002.07.22
блондинка за рулем


14-70899
dron1
2002-06-24 15:28
2002.07.22
поле с возможностью выбора





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский