Autor Beitrag
bruce185
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

winXP
D7 Ent
BeitragVerfasst: Do 04.05.06 01:46 
hi,
also ich wollte mal fragen wie ich überprüfen kann Wieviele Einträge in der Datenbank gefunden wurde, z.B. gebe ich an ein, und dann soll eine Meldung kommen Wieviele Einträge mit an gefunden wurde, so sieht meine suchfunktion aus:

ausblenden Delphi-Quelltext
1:
Table1.Locate('Vorname', Edit1.Text, [loCaseInsensitive, loPartialKey]);					


und wenn ich dann suche, dan soll z.B. so eine Meldung kommen:

Es wurden mit dem Suchbegriff "an" 7 Einträge gefunden.

wie mache ich das am einfachsten?

Gruss Andreas
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 04.05.06 06:42 
Da durch eine Locate die Anzahl der datensätze in einem dataSet nicht verändert wird da nur der Datensatzzeiger verschoben wird, kannst du so nicht die Anzahl der passenden Datensätze ermitteln. In diesem Fall würde ich die den Einsatz einer expliziten Abfgare vorschlagen.

_________________
Markus Kinzler.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 04.05.06 07:54 
@mkinzler:
bruce benutzt ein TTable. Da ist nicht viel mit einer Abfrage zu machen.
(persönliche Anmerkung für mkinzler: Ich habe dich erwischt :wink:)

@bruce185:
Was mkinzler meint ist die Verwendung eines TQuery mit einer SQL-Abfrage. Evtl geht es auch mit der Filter-Funktion einer TTable-Komponente. Aber ich bin mir nicht sicher, ob dabei die richtige Anzahl der Datensätze zurück gegeben wird. Das müsstest du mal testen. Wobei ich die Variante mit SQL bevorzugen würde.
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Do 04.05.06 11:34 
Moin :-)
Jo, mit TTable.Filter lässt sich das so machen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Table1.DisableControls;  // Anzeigen 'einfrieren'
Table1.Filter := 'Vorname=' + QuotedStr ( Edit1.Text );
Table1.FilterOptions := [foCaseInsensitive];  //--Groß-/Kleinschreibung ignonieren
Table1.Filtered := True;
ShowMessage ( Format ('%d Einträge für %s gefunden', [ Table1.RecordCount, Edit1.Text ] ) );
Table1.Filtered := False;
Table1.EnableControls;  //Anzeigen wieder 'freigeben'

Mit Edit1.Text = 'Reiner' wird nur nach exakter Übereinstimmung gefiltert;
mit Edit1.Text = 'rein* wird alles gefiltert, was mit Rein anfängt, also Reiner, Reinhard, Reinhold etc...
bruce185 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

winXP
D7 Ent
BeitragVerfasst: Do 04.05.06 20:35 
cool, ich danke euch für die hilfe, nun funzt es :D

Gruss Andreas