![]() |
Datenbank: sqlite • Version: 3 • Zugriff über: Zeos
Login mit verschiedenen FORMS
Also ich habe mal ein simple Login Form die auch wunderbar funktioniert
Dazu habe ich eine Tabelle mit 3 Spalten USER....PASSWORD....SECTION das loginscript sieht bis jetzt so aus:
Delphi-Quellcode:
Nun hätte ich gern die Möglichkeit den dritten Wert zu nutzen um dem Programm zu sagen welches Fenster er öffnen soll.... Also verschachtelte IF Funktion....
begin
QUery1.SQL.Clear; Query1.SQL.Text:='Select * From USER where user='''+Edit1.Text+''' and password='''+Edit2.Text+''''; Query1.Open; if not Query1.Eof then begin Form1.Hide; Form2.Showmodal; end else ShowMessage('Wrong User or Password!') end;
Delphi-Quellcode:
WIe stelle ich das an den Wert der SECTION auszulesen und die FORM zu zuweisen ?
begin
QUery1.SQL.Clear; Query1.SQL.Text:='Select * From USER where user='''+Edit1.Text+''' and password='''+Edit2.Text+''''; Query1.Open; if not Query1.Eof then begin IF QUERY1 SECTION = 1 THEN BEGIN Form2.Showmodal; end; IF QUERY1 SECTION = 2 THEN BEGIN Form3.Showmodal; end; end else ShowMessage('Wrong User or Password!') end; LG Timo |
AW: Login mit verschiedenen FORMS
Delphi-Quellcode:
Query1.FieldByName(„SECTION“).AsInteger
|
AW: Login mit verschiedenen FORMS
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin QUery1.SQL.Clear; Query1.SQL.Text:='Select * From USER where user='''+Edit1.Text+''' and password='''+Edit2.Text+''''; Query1.Open; if not Query1.Eof then begin if Query1.FieldByName('SECTION').AsString = '1' then begin Form1.Hide; Form2.Showmodal; end; if Query1.FieldByName('SECTION').AsString = '2' then begin Form1.Hide; Form3.Showmodal; end; end else ShowMessage('Wrong User or Password!') end; Klappt DANKEEEEEEEEEEEEEEEEEEE hatte es so ähnlich da war sicher wieder der Riesen Baum der den Wald verdeckt !! lg Timo |
AW: Login mit verschiedenen FORMS
Zitat:
Delphi-Quellcode:
Jetzt ging es... der Code ist jedenfalls korrekt.
FieldByName('SECTION').AsInteger
|
AW: Login mit verschiedenen FORMS
ja gesehen da war bei mir sicher wieder ein mini Fehler drin ... das sind die schlimmsten die finde ich nie
lg Timo |
AW: Login mit verschiedenen FORMS
Super!
Und der übliche Komentar :) Sieh‘ Dir mal SQL-Parameter und deren Vorteile an. |
AW: Login mit verschiedenen FORMS
ja da gibt es einige die ich jetzt schon liebe sum() zb muss mir mal unbedingt eine liste mit allem besorgen was da so gängig ist mit ultra einfach beispielen für innerlich plonde wie mich :P :P :P
|
AW: Login mit verschiedenen FORMS
Man kann auch doppelte Anführungszeichen verwenden:
'Select * From USER where user= " '+Edit1.Text+' " and password= " '+Edit2.Text+' " '; Ciao Stefan |
AW: Login mit verschiedenen FORMS
Man kann auch die Anführungszeichen komplett entsorgen und mit Parametern arbeiten.
Delphi-Quellcode:
... allerdings ist es sehr fahrlässig die Kennwörter im Klartext in der Datenbank zu speichern. Dort sollten sich nur
QUery1.SQL.Clear;
Query1.SQL.Text:='Select * From USER where user=:user and password=:pass'; Query1.ParamByName('user').AsString := Edit1.Text; Query1.ParamByName('pass').AsString := Edit2.Text; Query1.Open; ![]() |
AW: Login mit verschiedenen FORMS
Zitat:
siehe: ![]() PS:
Delphi-Quellcode:
vor
QUery1.SQL.Clear;
Delphi-Quellcode:
ist nicht nötig weil SQL.Text das sowieso macht.
Query.SQL.Text
|
AW: Login mit verschiedenen FORMS
Delphi-Quellcode:
Noch ein paar Kleinigkeiten hinzu gefügt.
procedure TForm1.Button1Click(Sender: TObject);
begin Query1.SQL.Text:='Select * From USER where user=:user and password=:pass'; Query1.ParamByName('user').AsString := Edit1.Text; Query1.ParamByName('pass').AsString := Edit2.Text; Query1.Open if not Query1.Eof then begin case Query1.FieldByName('SECTION').AsString of '1' : begin self.Hide; Form2.Showmodal; end; '2' : begin self.Hide; Form3.Showmodal; end; else ShowMessage('Database error: unknown or missing section'); end;{case------------------------------------------------------} end else ShowMessage('Wrong User or Password!'); Query1.Next; if not(Query1.EOF) then ShowMessage('Database error: more than one record found'); Query1.Close; {-- die Query sauber hinterlassen } end; Gruß K-H |
AW: Login mit verschiedenen FORMS
Zitat:
|
AW: Login mit verschiedenen FORMS
Du hast Recht! String geht nicht. Bei Char bin ich mir nicht sicher.
Wenn Section nur numerische Werte enthält, würde ich das sowieso über Integer lösen. Gruß K-H |
AW: Login mit verschiedenen FORMS
Zitat:
|
AW: Login mit verschiedenen FORMS
Case funktioniert in Delphi nur mit ordinalen Typen (Char gehört auch dazu). Also entweder etwas wie Char oder Integer benutzen oder auf Funktionen wie AnsiIndexText ausweichen, wenn es Strings sein müssen, man aber Case verwenden möchte.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz