Autor Beitrag
Mike_2005
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 20.10.04 08:58 
Hallo,
ich habe folgendes Problem:
Ich lasse in 2 Edit Feldern Name (loginname) und Passwort (loginpass) eingeben.
Anschließend kann man auf Login (Button) klicken, nun wird der folgende Code ausgeführt:

Database1->DatabaseName ="TESTDB01";
Database1->Params->Values["user name"] = loginname->Text;
Database1->Params->Values["password"] = loginpass->Text;

Wenn es erfolgreich ist wird ein neues Formular aufgerufen.
Wenn nicht bekomme ich eine Fehlermeldung vom Builder.
Wie kann ich abfragen ob das Passwort oder der Name (Benutzername) in Ordnung ist bzw.
Welche Funktion bietet TDatabase für einen Rückgabewert ?

Wenn ein Parameter falsch ist, soll ein Formular "Login-Fehler" aufgerufen werden.)

Vielen Dank
Mike
mettie84
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 21

Win2k, XP SP2, Linux 9.0
D5 standart, D6 Ent, D7 Ent
BeitragVerfasst: Mi 20.10.04 10:44 
Für dieses Problem gibt es schon einen Thread. Ich habs nur anders ausgedrückt. Aber da antwortet auch keiner drauf.

MfG Matthias

_________________
Wenn das 0:2 schon gefallen ist, dann ist ein 1:1 nicht mehr möglich
Mike_2005 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 20.10.04 13:27 
Und auch noch keine Lösung ?
MAlsleben
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 303

W2k,WinXP
D3 - DXE3 Enterprise
BeitragVerfasst: Do 21.10.04 11:19 
Hi,

ich würde es mal so probieren:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Database1.LoginPrompt:=false;
try
  Database1.connected:=true;// wenn das in die Hose geht, wird eine exception ausgelöst
  form2.show; // wird nur ausgeführt, wenn vorher keine exception stattfindet


except
   // eventl. Message ausgeben oder Formular Login fehler aufrufen

end// Try


Gruß Micha

_________________
Viele Wege führen nach Rom.
mettie84
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 21

Win2k, XP SP2, Linux 9.0
D5 standart, D6 Ent, D7 Ent
BeitragVerfasst: Do 21.10.04 11:23 
Das ist richtig. Aber wie reagiere ich gezielt auf Eingabefehler. Wie kann ich feststellen, ob ein falsches Passwort eingegeben wurde, oder ein falscher Benutzername.

Das gibt die Exception allein nicht her.

_________________
Wenn das 0:2 schon gefallen ist, dann ist ein 1:1 nicht mehr möglich
MAlsleben
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 303

W2k,WinXP
D3 - DXE3 Enterprise
BeitragVerfasst: Do 21.10.04 13:04 
Hi,


wenn die Info 100% ig aus der Datenbank kommen soll, kannst Du das ja erst mit dem Connect zu DB feststellen. Wenn Du das nicht ein einen try ... except Block packst, bekommmst Du z.B. genau die Fehlermeldung, Benutzername oder Passwort falsch.

Das heißt, wenn eine Exception an der Stelle auftritt, ist entweder die Datenbank nicht da, na gut dann ist es auch egal, was der User eingibt. Aber auch hier läßt sich die entsprechende Fehlermeldung im Except -Block ausgeben.

Meines erachtens kannst Du im except- Block doch darauf reagieren.

Wenn Du das natürlich vor dem DB- Connect machen willst, dann müßtest Du permanent die entsprechenden Daten aus der DB auslesen und lokal abspeichern und dort vergleichen. Das widerspricht aber jeglichen Konzepten der Arbeit mit RDBMS- Systemen.

Gruß Micha.

_________________
Viele Wege führen nach Rom.