Thema: Delphi Datensätze zählen???

Einzelnen Beitrag anzeigen

romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#8

Re: Datensätze zählen???

  Alt 19. Sep 2005, 01:47
So, tut mir Leid Leute, aber ich verstehe immer noch nicht ganz, wie ich meine WHERE-Klausel ersetze und immer noch zu dem gewünschten Ergebniss komme. Ich denke, wenn ihr mir mit einem Praktischen Beispiel zeigt, wie es geht, werden ich es besser verstehen.
Also, ich habe auf der Form ein DBGrid1, der über ADOQuery1 aus der Datenbank VERWALTUNG auf den MSSQL Server Rechnungsdaten bezieht. Die Beispieltabelle hat vier Spalten: "name", "produkt", "preis" und "status". Die ersten drei sind klar, der Spalte "status" wird einen der drei Werte zugewissen: "Bezahlt" oder "Nicht bezahlt" oder "Storniert". So, dann habe ich noch einen Edit1-Textfeld für die Eingabe des Suchbegriffs. Es werden alle vier Spalten durchgesucht:

Delphi-Quellcode:
...
var
suchbegriff: string;
begin
  with ADOQuery1 do
  begin
    active := false;
    sql.Clear;
    suchbegriff := '%' + Edti1.Text + '%';
    sql.Text := 'SELECT * FROM VERWALTUNG' + #10 +
                'WHERE (LOWER(name) LIKE :Param1)' + #10 +
                'OR (LOWER(produkt) LIKE :Param2)' + #10 +
                'OR (LOWER(preis) LIKE :Param3)' + #10 +
                'OR (LOWER(status) LIKE :Param4)';
    ParamCheck := true;
    Parameters.ParamByName('Param1').Value := LowerCase(suchbegriff);
    Parameters.ParamByName('Param2').Value := LowerCase(suchbegriff);
    Parameters.ParamByName('Param3').Value := LowerCase(suchbegriff);
    Parameters.ParamByName('Param4').Value := LowerCase(suchbegriff);
    active := true;
    open;
  end;
...
Jetzt würde ich in der StatusBar anzeigen, wieviele Rechnungen bezahlt sind, wieviele nicht bezahlt und wiviele storniert. Diese Zahlen müssen für jeder Anfrage aktuell sein. Ich habe es zwar mit den oben geposteten Beispiele irgenddwie erreicht, dass die Datensätze gezählt wurden, aber es waren jedesmal alle Datensätze in der Tabelle gezält und nicht nur auf die Anfrage zurückgelieferte Ergebnisse.
Könnt ihr mir bitte zeigen, wie ich meine Abfrage ändern soll, damit ich zu dem gewünschten Ergebniss komme?

Im Vorraus vielen Dank!
  Mit Zitat antworten Zitat