![]() |
Re: Passwortabfrage durch IB
was meinst du nochmal mit IBD, soll ich anstatt IBD SQLConnection dort einfügen??
|
Re: Passwortabfrage durch IB
so habs nochmal geändert, war nur leicht verwirrt gerade, nun also der quellcode sieht nun so aus:
Delphi-Quellcode:
das programm startet, keine fehler doch er liest den benutzernamen oder das passwort nicht richtig ein, da ist noch ein kleiner fehler aber ich denke den schaff ich selber zu finden, wenn nicht ich weiß ja wo ich hilfe bekommen, danke sehr schonmal für deine hilfe.
procedure TForm1.BTN_LoginClick(Sender: TObject);
begin s1:=ED_Passwort.Text; s2:=ED_Username.Text; SQLConnection1.Params.Strings[1]:='password='+s1; SQLConnection1.Params.Strings[2]:='username='+s2; if (SQLConnection1.Params.Strings[1]=ED_Passwort.Text) and (SQLConnection1.Params.Strings[2]=ED_Username.Text) then begin Form2.Show; Form1.Visible:=false; end else ShowMessage('Falsche Eingabe'); end; |
Re: Passwortabfrage durch IB
ibd ist das ibdatabase objekt, ich hab das nur so genannt...
du solltest dieses database objekt auch eingefuegt haben und die entsprechende db im objekt inspektor einstellen usw.... ich hab nochmal nachgeschaut die params muessen so aussehn: user_name=SYSDBA password=masterkey wobei SYSDBA und masterkey beispiele sind fuer s1 und s2 also
Delphi-Quellcode:
wieso hast du [1] und [2] als strings?
Params.Strings[0]:='user_name='+s1;
Params.Strings[1]:='password='+s2; |
Re: Passwortabfrage durch IB
also das problem ist ja er soll sich nicht mit dem namen sysdba und pw masterkey anmelden sondern mit den in der table T_user befindlichen datensätzen, die verbindug zur datenbank über den benutzer sysdba wird in der Procedure FormCreate schon aufgerufen und besteht. In der Datenbank befinden sich auch schon 2 user mit dem entsprechenden pass, diese sind einmal Admin und einmal test mit pw abc123, najo und des macht er nicht wirklich, auch per sysdba und masterkey loggt er sich nciht ein und gibt aus das eine Falsche eingabe bestand.
|
Re: Passwortabfrage durch IB
achso :) jetzt is alles klar...
benutze eine ibquery komponente ich nenn sie mal IBQ und schreib folgendes
Delphi-Quellcode:
hierbei waer die db tabelle aus der du liest CONDATA und deren Felder PASSSWORT und USER... du musst also die entsprechend deiner im quellcode aendern
procedure TForm1.BTN_LoginClick(Sender: TObject);
begin s1:=ED_Passwort.Text; s2:=ED_Username.Text; IBQ.SQL.Text:='Select PASSWORT FROM CONDATA Where USER='+s2; IBQ.SQL.OPEN; if IBQ.Fieldbyname('PASSWORT').asString=s1 then begin Form2.Show; Form1.Visible:=false; end else ShowMessage('Falsche Eingabe'); end; |
Re: Passwortabfrage durch IB
der erkennt bei
Delphi-Quellcode:
das open nicht, wodran kann das liegen??
SQLQuery1.SQL.OPEN;
|
Re: Passwortabfrage durch IB
versuch mal nur sqlquery1.open
|
Re: Passwortabfrage durch IB
so steht das jetzt da:
Delphi-Quellcode:
und er gibt mir nach eingabe vom benutzer und passwort den fehler aus "Exeption von EDatabaseError Meldung: Column Unknown ADMINISTRATOR
s1:=ED_Passwort.Text;
s2:=ED_Username.Text; SQLQuery1.SQL.Text:='Select U_pass FROM T_User Where U_name='+s2; SQLQuery1.Open; if SQLQuery1.Fieldbyname('U_pass').asString=s1 then begin Form2.Show; |
Re: Passwortabfrage durch IB
ich hab leider jetzt feierabend... wenn du magst dann schick mir das projekt inkl. db per mail (grumble@gmx.ch) oder haengs an einen deiner posts an.
dann guck ich zu hause nochmal rein. vielleicht hilft dir auch noch jemand anderes hier. die meisten hier sind viel kompetenter als ich. |
Re: Passwortabfrage durch IB
Dein String muss in einfachen Anführungstrichen stehen, sonst interpretiert SQL das als Vergleich zweier Spalten!
Delphi-Quellcode:
oder
SQLQuery1.SQL.Text:='Select U_pass FROM T_User Where U_name='''+s2+'''';
Delphi-Quellcode:
SQLQuery1.SQL.Text:='Select U_pass FROM T_User Where U_name='+QuotedStr(s2);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 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