Autor Beitrag
haste
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 18.04.07 23:29 
Hallo!
Ich benutze Firebird 1.5.4, Borland 2006 und ZEOS 6.6.1.

Das Programm wird problemlos kompiliert.
Mit der folgenden Prozedure bekomme ich kein Ergebnis bei dieser Datenbankanfrage:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TForm1.LoginBnClick(Sender: TObject);
begin
  try
    ZQuery1.SQL.Clear;
    ZQuery1.sql.add('SELECT * FROM BENUTZER WHERE BNAME = :BenNameTxt AND PW = :PasswortTxt');
    BenNameTxt.Text := ZQuery1.ParamByName('BenNameTxt').AsString;
    PasswortTxt.Text:= ZQuery1.ParamByName('PasswortTxt').AsString;
    ZQuery1.Open;
    if ( Not (ZQuery1.IsEmpty)) then
        begin
          Form1.Visible := false;
          Form2.Showmodal;
        end
        else begin
          MessageDlg('Fehlerhaftes Passwort/Benutzername',mtWarning,[mbok],0);
          //Form1.Close;
          //Form2.Close;

    end
  finally
    ZQuery1.Active := false;
    ZQuery1.sql.clear;
  end
end;


Ich habe auch nur mit einem Parameter versucht, aber es passierte auch nichts!

Ich habe mit Handanfrage außerhalb Delphi nach konkreten Werten gesucht und bekam das erwartete Ergebnis.
Zusätzlich habe ich nur mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.LoginBnClick(Sender: TObject);
begin
  try
    ZQuery1.SQL.Clear;
    ZQuery1.sql.add('SELECT * FROM BENUTZER');
    ZQuery1.Open;
    if ( Not (ZQuery1.IsEmpty)) then
        begin
          Form1.Visible := false;
          Form2.Showmodal;
        end
        else begin
          MessageDlg('Fehlerhaftes Passwort/Benutzername',mtWarning,[mbok],0);
          //Form1.Close;
          //Form2.Close;

    end
  finally
    ZQuery1.Active := false;
    ZQuery1.sql.clear;
  end
end;

probiert und bekam auch Ergebnis.

Deswegen verdächtige ich, dass etwas mit den Parametern nicht in Ordnung ist!

Weil ich keine Information dafür finden konnte, bitte ich Sie um Hilfe!
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Do 19.04.07 06:46 
Versuch mal:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
    ZQuery1.sql.Text := 'SELECT Count(*) as anzahl FROM BENUTZER';
    ZQuery1.Open;
    if ZQuery1.FieldByName('anzahl').Value > 0 then
        begin

Außerdem scheinst du ein Liebhaber von unnötigen Klammern zu sein:
if ( Not (ZQuery1.IsEmpty)) then kann man auch als
ausblenden Delphi-Quelltext
1:
if Not ZQuery1.IsEmpty then					

Schreiben.

_________________
Markus Kinzler.
stifflersmom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 194

XP /XP PRO/ SuSE div.
D1 - D7, BDS 2006
BeitragVerfasst: Do 19.04.07 08:24 
Nimm doch einfach statt empty die Menge, also RecordCount
user profile iconhaste hat folgendes geschrieben:
Hallo!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TForm1.LoginBnClick(Sender: TObject);
begin
  try
    ZQuery1.SQL.Clear;
    ZQuery1.sql.add('SELECT * FROM BENUTZER WHERE BNAME = :BenNameTxt AND PW = :PasswortTxt');
    BenNameTxt.Text := ZQuery1.ParamByName('BenNameTxt').AsString;
    PasswortTxt.Text:= ZQuery1.ParamByName('PasswortTxt').AsString;
    ZQuery1.Open;
    if ZQuery1.RecordCount > 0  then // Stat Empty, einfach ErgebnisMENGE ansehen
        begin
          Form1.Visible := false;
          Form2.Showmodal;
        end
        else begin
          MessageDlg('Fehlerhaftes Passwort/Benutzername',mtWarning,[mbok],0);
          //Form1.Close;
          //Form2.Close;

    end
  finally
    ZQuery1.Active := false;
    ZQuery1.sql.clear;
  end
end;


Moin
alex517
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 60


D7Ent, FB, FIBPlus
BeitragVerfasst: Do 19.04.07 10:52 
Hallo haste,


versuchs doch mal damit:
ausblenden Delphi-Quelltext
1:
2:
3:
    ZQuery1.sql.add('SELECT * FROM BENUTZER WHERE BNAME = :BenNameTxt AND PW = :PasswortTxt');
    ZQuery1.ParamByName('BenNameTxt').AsString := BenNameTxt.Text;
    ZQuery1.ParamByName('PasswortTxt').AsString := PasswortTxt.Text;


alex