Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL SELECT COUNT(*) (https://www.delphipraxis.net/10517-sql-select-count-%2A.html)

Snyderburn 20. Okt 2003 14:31


SQL SELECT COUNT(*)
 
Hi!

Ich habe ein kleines Problem mit einer SQL abfrage. Die Abfrage lautet:

SQL-Code:
SELECT COUNT(*) FROM Anschrift
Mit dem Programm IBExpert, womit ich mich auf meine Datenbank connecte, da funktioniert die Abfrage 100%ig. Stelle ich aber die Abfrage in mein Delphi prog rein, dann kommt immer ne Fehlermeldung.

Hier ist der Code:
Delphi-Quellcode:
dm1.q_intern.Close;
dm1.q_intern.SQL.Clear;
dm1.q_intern.SQL.Add('SELECT COUNT(*) FROM Anschrift');
dm1.q_intern.Open;
Habe ich da irgendwie etwas vergessen?

mfg
Snyderburn

[edit=sakura]Delphi durch SQL-Tags ersetzt. Mfg, sakura[/edit]

Tanadirian 20. Okt 2003 14:37

Re: SQL SELECT COUNT(*)
 
Wie lautet denn die Fehlermeldung?

Alibi 20. Okt 2003 14:37

Re: SQL SELECT COUNT(*)
 
Das ist zwar nicht die Lösung deines Problems, aber ich würd den Query anders machen, so ist der viel zu rechenaufwendig. SELECT Count(id) FROM Anschrift oder wie auch immer ein Feld heißt, was bei dir in jedem Datensatz vorhanden ist.

Snyderburn 20. Okt 2003 14:46

Re: SQL SELECT COUNT(*)
 
Die Fehlermeldung lautet:

Im Projekt Projekt.exe ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung: 'DBLookupComboBox1: Das Feld 'ID_ANSCHRIFT' wurde nicht gefunden'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzten

Tanadirian 20. Okt 2003 14:59

Re: SQL SELECT COUNT(*)
 
Das hat ja erstmal nichts mit der Abfrage zu tun, so wie ich das sehe. Lass das Prog doch mal zeilenweise laufen und sieh nach wo genau der Fehler auftritt. Ich schätze du willst das Ergebnis in der Combo anzeigen, oder?

woki 20. Okt 2003 15:16

Re: SQL SELECT COUNT(*)
 
Hi,

etwas vollständigere Informationen sind schon sehr sinnvoll, damit man helfen kann und nicht so im Dunkeln stocher.

Also, ich nehme mal an Du Verwendest eine TQuery-Komponente, die du vorher schon anders verwendest hast, heißt die Komponente hat persistente Feldkomponenten, die dann von Deiner Abfrage nicht zurückgeliefert werden.

Mach mal nen Doppelclick auf die TQuery-Komponente, dann geht der Feldeditor auf, und wahrscheinlich stehen da dann Felder drin, die alle löschen.

Das sollte es gewesen sein.

Ach so, die Combobox aus der Fehlermeldung, nimm da mal die Datasources weg, das ist wohl noch eher der Grund, diese Combobox will daten zurückhaben von der Query, die diese nicht liefert.

Grüsse
Woki

Snyderburn 21. Okt 2003 07:48

Re: SQL SELECT COUNT(*)
 
Also:

Ich habe den Code mal in eine TQuery-Komponente gepackt, die ich ganz Neu erstellt habe. Ich habe die Komponente noch nicht mit der DataSource verknüpft, dann kommt keine Fehlermeldung, aber es muß ja eben noch eine Verknüofung mid der DataSource stattfinden. Mache ich das, dann kommt die gleiche Fehlermeldung wie schon beschrieben (siehe oben).

Das Problem, was ich nun habe ist, dass ich ein Table habe, welches Daten zur DBLookupCombobox liefert. Benutzt ich nun die Query-Komponente dann werde die Daten nicht geliefert und die Fehlermeldung kommt. (Danke für den Hinweis, woki)

Gibt es denn eine einfachere Möglichkeit um herauszufinden, wieviel Datensätze sich in der Tabelle befinden?

Ich habe es schon mit diesem Code versucht, der ist aber viel zu langsam:

Delphi-Quellcode:
x := 0;
dm1.T_Anschrift.First;
repeat
  x := x + 1;
  dm1.T_Anschrift.Next;
until dm1.t_anschrift.Eof;

Sharky 21. Okt 2003 08:20

Re: SQL SELECT COUNT(*)
 
Zitat:

Zitat von Snyderburn
...Gibt es denn eine einfachere Möglichkeit um herauszufinden, wieviel Datensätze sich in der Tabelle befinden?....

Hai,

warum nicht

Delphi-Quellcode:
TQuery1.RecordCount

Snyderburn 21. Okt 2003 08:54

Re: SQL SELECT COUNT(*)
 
Danke für die Hilfe! Es hat bestens geklappt.

Zitat:

Zitat von Sharky
Zitat:

Zitat von Snyderburn
...Gibt es denn eine einfachere Möglichkeit um herauszufinden, wieviel Datensätze sich in der Tabelle befinden?....

Hai,

warum nicht

Delphi-Quellcode:
TQuery1.RecordCount


Sharky 21. Okt 2003 09:01

Re: SQL SELECT COUNT(*)
 
Hai Snyderburn,

nur als Info. Du kannst es natürlich auch in deinen SQL-Befehl einarbeiten.

SQL-Code:
SELECT *, COUNT(id) AS anzahl FROM Anschrift
Dann hast Du zum einen alle Felder der Tabelle und zusätzlich noch das Feld anzahl.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.
Seite 1 von 2  1 2      

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