![]() |
Recordcount wenn filtered=true ?!?
Hallo, weiss jemand, wie man die Anzahl der resultierenden Datensätze zählt, NACHDEM ein Dataset gefiltert wurde ?
Habe eine Tabelle (Access 2000), welche gefiltert wird, so dass nur ein Datensatz stehen bleibt. Vorhanden sind aber (wenn nicht gefiltert) 23 Datensätze. Mein TDBGrid zeigt mir auch nur den einen, korrekt gefundenen Datensatz an. Mache ich aber
Delphi-Quellcode:
dann erhalte ich x = 23.
tbl1.filter:='feld1=51';
tbl1.filtered:=true; tbl1.open; x:=tbl1.recordcount Demnach schert sich recordcount nicht um den Filter !?? Ist das so? Wie kann man dennoch gefilterte Tabellen durchzählen ? Einige andere Beiträge zum Thema filtern im Forum Datenbanken sehen mir allerdings so aus, als würde sehr wohl nur die gefilterte Menge gezählt. Was mache ich denn falsch ? Gruss, ST2000 |
Re: Recordcount wenn filtered=true ?!?
Hallo,
es macht die Sache einfacher, wenn man erfährt, um welche Komponenten es hier geht. tschüss woki |
Re: Recordcount wenn filtered=true ?!?
Naja, konkret eine TTable, aber wäre ja im Zweifel auf alle TDataSet-Nachkommen anzuwenden...
Die Tabelle tbl1 befüllt via einer DataSource1 ein TDBGRid1. Ich filtere die Tabelle mittels ID 51, so das nur ein Datensatz rauskommen kann. Zeigt das Grid auch so an. Aber ein tbl1.recordsetcount zählt (ausgeführt nach dem tbl1.filtered:=true !!!) immer ALLE 23 Datensätze, die ich in der Tabelle drin habe. :shock: Jetzt suche ich so eine Art "tbl1.filteredrecordsetcount"-Funktion... :| War es das, was Dir noch fehlte ? Gruss, ST2000 |
Re: Recordcount wenn filtered=true ?!?
RecCount geistert immer wieder hier durch's Forum, allein - ich kann's net nachvollziehen wozu so'n Reccount gut ist. Ein sicherer Weg um Records zu zählen ist noch immer eine Selectanweisung der Form:
SQL-Code:
Das schnuckelt bei Regen, Schnee und Sonne :-)
select count(*) where [SelbeBedingungWieInDemEigentlichenSelect]
|
Re: Recordcount wenn filtered=true ?!?
Schon, aber das geht ja nur , wenn man TQuery nutzt. Ich hab hier aber einen im Grunde sehr simplen Dialog, der eine Stammdatentabelle in einem Grid anzeigt. Dafür würde ich nur ungern mit SQL-Statement-Generierung auf String-Basis arbeiten (kommt einem immer mal ein Komma zuviel rein, und schon kann man wieder suchen...).
Sowas würde ich nur für 1:N-Zugriffe machen wollen/müssen. Und wenn man sicherstellen will, daß ein Suchkriterium nur 1x gefunden wird, ist es m.E. sinnvoll, das mit
Delphi-Quellcode:
zu prüfen.
if tbl1.recordcount > 1 then tbl1.close;
showmessage('Mehrfach vorhanden!'); exit; Habe aber mal mit Setrange rumprobiert, und damit gehts. Recordcount zählt auch nur 1, nicht 23...Prima. Wozu gibts eigentlich diese ganzen unetrschiedlichen Filter und Suchmöglichkeiten ? Historisch gewachsen ? Filter, Setrange, Locate, Findkey... Vielfalt ist ja schön, aber mir ist nicht klar, ob es je bestimmte Situationen gibt, in denen ich (nach der Ausgangsidee von Borland) nun Filter oder Setrange einsetzen soll. ?!? Gruss, ST2000 |
Re: Recordcount wenn filtered=true ?!?
Hi
Zitat:
Zitat:
Grüsse Woki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr. |
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