AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensätze mit SQL zählen
Thema durchsuchen
Ansicht
Themen-Optionen

Datensätze mit SQL zählen

Ein Thema von fl63 · begonnen am 15. Mär 2010 · letzter Beitrag vom 15. Mär 2010
Antwort Antwort
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#1

Datensätze mit SQL zählen

  Alt 15. Mär 2010, 09:42
Datenbank: BDE • Zugriff über: BDE SQL
Hallo

Ich möchte die Datensätze einer Tabelle mit SQL zählen und als StatusPanel ausgeben.
Dafür habe ich folgenden Quelltext:

Delphi-Quellcode:
   with Query2 do
   begin
   Active:= false;
   SQL.Clear;
 SQL.Add('Select Count (feld001) as AnZahl from '+ ComboBox1.Text) ;
   StatusBar1.Panels[0].Text:=IntToStr(Anzahl ) ;
   Active := true;
  end;
In Variable Anzahl soll die gesamtZahl der Datensätze dieser Tabelle stehen. Es steht aber eine undefinierbare hohe Zahl (1243048) im Statuspanel. Egal welche Tabelle ob mit 5 oder 100000 Datensätzen diese Zahl ist dieselbe.
Auch das zurücksetzen der Variable Anzahl (Anzahl := 0) führt zu dem Ergebnis,daß in dem Statuspanel 0 steht. Für mich steht fest dieser Textmacht alles andere nur nicht zählen.
Wo ist mein Fehler?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Datensätze mit SQL zählen

  Alt 15. Mär 2010, 09:43
Die Reihenfolge ist Dein Fehler. Du musst die Datenmenge erst öffnen, bevor Du Werte auslesen kannst.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
fl63

Registriert seit: 30. Mär 2008
124 Beiträge
 
#3

Re: Datensätze mit SQL zählen

  Alt 15. Mär 2010, 09:51
Also etwa so? Und anschließend schliessen?
Delphi-Quellcode:
with Query2 do
   begin
   Open;
   Active:= false;
   SQL.Clear;
SQL.Add('Select Count (feld001) as AnZahl from '+ ComboBox1.Text) ;
   StatusBar1.Panels[0].Text:=IntToStr(Anzahl ) ;
   Close;
   Active := true;
  end;
Nach dem Ausprobieren: Fehlermeldung keine SQL Anweisung verfügbar.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Datensätze mit SQL zählen

  Alt 15. Mär 2010, 10:29
Das Grundgerüst für eine Query sieht bei mir immer so aus:
SQL-Code:
Query.close; //sicher ist sicher
query.sql.text:='select irgendwas from irgenwo';
query.open;
if not queryeof
  repat
    ...
    query.next;
  until query.eof;
query.close;
gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datensätze mit SQL zählen

  Alt 15. Mär 2010, 10:39
Delphi-Quellcode:
//zur Sicherheit Datenmenge schließen
Query2.Close;
//Abfragetext setzen
Query2.SQL.Text := 'Select Count(feld001) as Anzahl from '+ ComboBox1.Text;
//Datenmenge öffnen
Query2.Open;
//Ergebnismenge auslesen
StatusBar1.Panels[0].Text:=IntToStr(Query2.FieldByName('Anzahl').AsInteger);
//und wieder schließen
Query2.Close;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz