![]() |
Datenbank: Interbase • Version: 6.5 • Zugriff über: dbexpress
Passwortabfrage durch IB
Hi,
also ich möchte folgendes fertig stellen, und zwar habe ich eine Form1 wo zwei EditFelder drauf liegen wo man Username und Passwort eingeben muss, diese Eingaben solen dann mit der Interbase Datenbank verglichen werden. Hier zunächst der Quelltext mit dem ich es versucht habe,
Code:
nun zeigt er mir den fehler an Inkompatible typen TSQLDataset und String, ist ja auch verständlich da das Edit Feld ein String wert haben möchte ich aber die zu vergleichenden werte als TSQLDataSet angegeben habe, also zur Verbindungserstellung habe ich einmal den TSQLConnection und zum andern zwei TSQLDataSet's benutzt da ich einmal die SQL Abfrage mit pass und einmal mit user habe.
var pass,user: TSQLDataSet;
{$R *.dfm} procedure TForm1.BTN_BeendenClick(Sender: TObject); begin application.Terminate; end; procedure TForm1.BTN_LoginClick(Sender: TObject); begin User:=SQLDataSet1; pass:=SQLDataSet2; if (ED_Passwort.Text=pass) and (ED_Username.Text=user) then begin Form2.Show; Form1.Visible:=false; end; end; procedure TForm1.ED_PasswortKeyPress(Sender: TObject; var Key: Char); begin User:=SQLDataSet1; pass:=SQLDataSet2; if (ED_Passwort.Text=SQLDataSet2) and (ED_Username.Text=SQLDataSet1) then begin Form2.Show; Form1.Visible:=false; end; end; procedure TForm1.FormCreate(Sender: TObject); begin SQLConnection1.Connected:=True; SQLDataSet1.Active:=True; SQLDataSet2.Active:=True; end; naja nun weiß ich nich recht weiter, habe ich in der Grundüberlegung etwas falsch gemacht oder wo sonst?? könnte mir dabei einer Helfen bitte?? Bye |
Re: Passwortabfrage durch IB
also user und passwort sind eigenschaften der connection
d.h. du musst das etwa so machen .. pseudo code connection1.passwort=edit1.text connection1.user=edit2.text diese werte also der connection uebergeben natuerlich solltest du auch abfragen ob sich dann connecten laesst, und wenn nicht dann eine meldung ausgeben 'passwort oder login flasch' |
Re: Passwortabfrage durch IB
meintest du das so ungefair??
Delphi-Quellcode:
procedure TForm1.BTN_LoginClick(Sender: TObject);
begin if (SQLConnection1.U_pass=ED_Passwort.Text) and (SQLConnection1.U_Name=ED_Username.Text) then begin Form2.Show; Form1.Visible:=false; end; |
Re: Passwortabfrage durch IB
so in etwa meinte ich das :-D
|
Re: Passwortabfrage durch IB
joa hab ich mir schon gedacht aber das funktioniert auch nicht wirklich da er die felder aus der db U_name und U_pass nicht erkennt, wodran könnte das liegen? die verbindung zur datenbank ist erstellt...
|
Re: Passwortabfrage durch IB
das liegt normalerweise daran dass passwort und benutzername keine datenbankfelder sind , sondern eher in deren eigenschaften stehen. womit hast du die datenbank erstellt? hast du im objektinspektor mal versucht zur db zu connecten? hast du die eigenschaft database der connection gesetzt?
|
Re: Passwortabfrage durch IB
ja also über den objektinspektor baut er die datenbankverbindung auf, habe auch den loginprompt ausgeschalten da das dauernde verbinden zur datenbank mich stört, die datenbank hab ich erstellt mit interbase benutzen zum datensätze einfügen habe ich den IBExpert.
|
Re: Passwortabfrage durch IB
achso bei interbase:
im ibdatabase object, stehen username und passwort wohl nich als eigenschaft direkt, sondern in den params, also musst du diese eigenschaften setzen ca. soleider weiss ich jetzt die genaue syntax der param strings nicht
Delphi-Quellcode:
IBD ist das interbase database objekt
var s2,s1:string;
s1:=edit1.text; s2:=edit2.text; IBD.Params.Strings[0]:='password='+s1; IBD.Praams.Strings[1]:='username='+s2; |
Re: Passwortabfrage durch IB
boa ich check des nich so ganz, ich hab des jetzt so geschrieben,
Delphi-Quellcode:
doch ich werd daraus nich schlau, erstens sagt er bezeichner redefiniert was ich zum ersten mal sehe und sonst weiß ich auch nich weiter...
procedure TForm1.BTN_LoginClick(Sender: TObject);
var s2,s1:string; s1:=ED_Passwort.Text; s2:=ED_Username.Text; IBD.Params.Strings:='password='+s1; IBD.Praams.Strings:='username='+s2; begin if (IBD.Params.Strings=ED_Passwort.Text) and (IBD.Params.Strings=ED_Username.Text) then begin Form2.Show; Form1.Visible:=false; end; end; |
Re: Passwortabfrage durch IB
oh sorry also
var sind nur s1,s2 muss so aussehn
Delphi-Quellcode:
var s1,s2:string;
begin s1:=ED_Passwort.Text; s2:=ED_Username.Text; IBD.Params.Strings:='password='+s1; IBD.Praams.Strings:='username='+s2; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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