![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus 6.4
RecordCount bei gefiltertem Dataset
Hallo miteinander,
ich muß mal wieder das leidige Thema bemühen: Wie zähle ich die Anzahl der gefilterten Records in einem DataSet (TpFIBDataSet) ? Ich weiß, es gab hierzu schon den ein oder anderen Thread, ich habe alle gelesen , die ich gefunden habe, aber ein Lösungsansatz für mein Problem war leider nicht dabei. Allllso: Ich habe eine LookupComboBox, das verknüpfte DataSet holt seine Werte aus paar Tabellen und wird gefiltert. Diese Methode ist nicht gerade populär, ich weiß. Aber in diesem Fall durchaus sinnvoll, denn der Filter wird (im Rahmen einer inkrememtellen Suche) ziemlich oft verändert. Ich dachte zuerst an die Methode TpFIBDataSet.VisibleRecordCount, aber die liefert aus mir unbekannten Grund immer "8", egal wie viele Records "sichtbar" (also in der LokkupCombo angezeigt) sind. Das berühmte select count(*) mag ich eben wegen der häufigkeit der veränderung auch nicht machen. So bleibt mein Frage: Wie zähle ich die Anzahl der gefilterten Records oder die Anzahl der angezeigten Items in der LookupCombo (ist ja in dem Fall das selbe) ? :gruebel: |
Re: RecordCount bei gefiltertem Dataset
Zitat:
ich verstehe das Problem nach dieser Schilderung überhaupt nicht - warum willst du unbedingt abfragen, weiviele Zeilen gleichzeitig angezeigt werden? das ist doch völlig irrelevant; und es ist auch klar, dass die Standardantwort 8 heisst, das ist die Voreinstellung dafür, wieviele Einträge beim Aufklappen angezeigt werden. Wieviele Einträge gesamt vorhanden sind, entspricht doch dem, was die Abfrage geliefert hat - und das steht ganz einfach in der Combobox als Items.Count. Gruss Reinhard |
Re: RecordCount bei gefiltertem Dataset
Der Hintergrund ist, das diese Lookupcombo bei der Eingabe ein Pflichtfeld ist, natürlich nur, wenn auch Werte drinstehen.
Bei einer LookupComboBox gibt es leider kein "Items" Property und so auch kein "Count", sonst hätte ich das ganze Problem nicht. |
Re: RecordCount bei gefiltertem Dataset
Hallo,
habe da etwas das mir Dataspider gepostet hat in meinem Thread vieleicht hilft es: Zitat:
Darkchild |
Re: RecordCount bei gefiltertem Dataset
Danke dir, hilft aber leider auch nicht, ich habe ja kein Grid, in dem ich die Daten darstelle, sondern nur das "nackte" Dataset....
|
Re: RecordCount bei gefiltertem Dataset
Hm,
bin da selber nicht so firm in diesem LookupCombobox Datenbank gedrisse, aber ich habe da eine Idee in meinem umständlichen verwirrten Kopf von der ich selbst nicht weis ob es klappt, aber in meinem Kopf scheint es Theoretisch zu funktionieren, also die Idee ist folgende: Wenn Du die sachen filterst, kannst Du dabei nicht in den Tabellen ein Feld "Filter Aktiv" oder wie Du es auch nennen magst einen wert von 1 oder 0 reinschreiben, 1 heist wird gefiltert und 0 wird nicht gefiltert, so nachdem Du dann dieses Flag gesetzt hast kannst Du doch einen Count durchführen für alle Datensätze in denen "Filter Aktiv" auf 0 steht (über SQL oder so). Würde das nicht klappen (zwar wieder umständlich und vieleicht auch nicht elegant aber was anderes fällt mir dazu jetzt nicht ein) ? Gruss Darkchild P.S : Kann auch sein das dies eine ziemlich dämliche Idee ist die jenseits von gut und böse ist, aber "versuch macht kluch". |
Re: RecordCount bei gefiltertem Dataset
Zitat:
Ich denke, dass du um das count(*) nicht herumkommst. Eine Recordanzahl kann dir das DataSet ja nur liefern, wenn alle Records geladen sind. Du könntest natürlich auch selbst zählen. Stichwörter: DisableControls...GetBookMark...while not eof...EnableControls...GotoBookmark...FreeBookMark ... Cu, Frank |
Re: RecordCount bei gefiltertem Dataset
Hallo,
danke für die Antworten. Ich habe es inzwischen über eine zusätzliche select-query gemacht. Gefällt mir zwar nicht, aber es funktioniert erstmal. Ich bin auch der Meinung, das nach dem Beitrag von Darkchild schon gepostet zu haben, aber irgendwie..... :gruebel: Entweder hab ich nicht auf Absenden geklickt oder der Beitrag ist im Halbleiter-Nirwana untergegangen... Falls ich noch eine andere Lösung finden sollte, werde ich die auf jeden Fall hier posten... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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 by Thomas Breitkreuz