Jak? Logowanie poprzez DBexpress - obsługa wyjątków

0

Problem jest taki:
łączę się z bazą mysqla poprzez dbexpress :

MySQLCon.Params.Values['Hostname']:= adres_serwera;
MySQLCon.Params.Values['Database']:= nazwa_bazy;
MySQLCon.Params.Values['User_Name']:= user;
MySQLCon.Params.Values['Password']:= hasło;
MySQLCon.Connected:=true;

Wszystko działa i jest OK, łączę się poprawnie, ale tylko dopóki wszystkie 0ola user, password, host, database są poprawne. W swoim programie pola user_name i password wklepuję z klawy w czasie run-time.
Gdy pola te nie są poprawne program się wywala z komunikatem 'Project xxxx.exe raised exception class EDatabaseError with message 'dbExpress Error: Invalid Username/Password'' - w porządku, prawidłowe zachowanie.

I teraz - jak zrobić, żeby program się nie wywalał tylko dawał jakiś komunikat i pozwalał na kolejną próbe logowania się z innym polem user i password.

Zrobiłem coś takiego dla testu:

try
  MySQLCon.Connected:=True;      
except
  raise exception.Create('Błąd');
end;

ale program i tak się wywala z wyżej wspomnianym komuniaktem i dopiero po tym (dając Trace Into w trybie dubbugowania) wywala mój exception 'Błąd' .

Jakieś sugestie?

Z góry dzięki

0

Znalazłem pewne rozwiązanie, ale nie znam wszystkich konsekwencji tego.
Program wywala się podając klasę EDatabaseError, można zatem spowodować aby debbuger nie zatrzymywał się na błędach delphi przy Language Exception (Debbuger Options -> Language Exptions -> odznaczyć Stop on Delphi Errors) i jest OK.
Nie jestem tylko pewnien, czy nie ma jakiś ubocznych skutków ...
Może ktoś wie coś więcej na ten temat, a może zna inne rozwiązanie:)

Jeszcze raz z góry dzięki

0

przy odrobinie szczęścia nic się nie stanie, a w najgorszym Win się zawisi

1 użytkowników online, w tym zalogowanych: 0, gości: 1