![]() |
Datenbank: Keine • Version: - • Zugriff über: -
TDataSet per SELECT Filtern
Hallo
Ich habe hier eine TDataSet die ich per Code befülle Gibt es eine Möglichkeit diese nun per (so halbwegs) standard SQL WHERE zu filtern bzw auch zu sortieren/Felder selktieren? Also so, das ich die Filter und co genau so verwenden kann wie die von Firebird? Wenn man dann noch einen JOIN in eine echte Firebird DB machen kann wärs das. Aber das wichtigeste wäre mir der WHERE Part, das ich den 1:1 anwenden kann |
AW: TDataSet per SELECT Filtern
|
AW: TDataSet per SELECT Filtern
Um was für ein DataSet handelt es sich? GGf könntest du dann ja FB embedded verwenden.
|
AW: TDataSet per SELECT Filtern
Du hast keine Aussage über die Datenmenge gemacht oder darüber wie lange das befüllen des Datasets dauert und wie oft diese Daten dann abgefragt werden.
Desweiteren, wenn ich das richtig heraus gelesen habe, hast du eine Firebird-Datenbank im Zugriff zu der du auch gerne joinen würdest. Daher könnte es auch eine Lösung sein die Daten des TDataSet einfach in einer temporäre Tabelle (CREATE TEMPORARY TABLE ist dein Freund) der Datenbank zu importieren, dann hast du alle Möglichkeiten die du brauchst und mehr. |
AW: TDataSet per SELECT Filtern
|
AW: TDataSet per SELECT Filtern
Es handelt sich um eine MemoryDataSet
Das ganze wird aus einer Firebird Datenbank befüllt und dann aber noch gemappt, sprich die Spalten werden dynamisch erzeugt. Es werden dann so 10.000-100.000 Datensätzen reinkommen, mit 30-100 Spalten von den Spalten sind 10-15 fix die restlichen werden dann dynamisch aufgebaut Von der Firebird DB kommen so 1.000.000 Datensätze die eben dann in 100.000 Datensätze umgemappt werden. Eine temporäre Tabelle möchte ich eher vermeiden, da ich dann jedes mal dieses Tabelle anlegen, befüllen und wieder löschen muss ... ist viel aufwand und traffic FB Embeeded? Kann ich da eine fremde Dataset in den SQL Parser schicken? |
AW: TDataSet per SELECT Filtern
Also ich würde das, was Du mit den Daten machst, über eine entsprechende Query von FB ausführen lassen.
Wenn es sich allerdings um eine Art Pivot handelt, wo also erst durch den Inhalt der Tabellenaufbau definiert wird, dann ist das schon richtig, wie Du das machst. Für professionelle Filtermöglichkeiten bieten sich die vielen kommerziellen GridControls an (z.B. DevExpress). Reicht dein Budget nicht, dann musst Du dir wohl oder übel selbst etwas ausdenken. Ich würde das OnFilterRecord-Event nehmen und dort die Filterlogik implementieren. DevExpress filtert aber im Grid selbst, was viel schneller ist. Hier existiert auch ein Pivot-Grid, das deinen Anforderungen vermutlich genügen wird. Großartig programmieren musst Du dann nicht mehr. Allerdings frage ich mich, was der Anwender mit 100.000 Datensätzen anstellen will, oder ist das erst die Datenmenge, mit der Du filtern/gruppieren bzw. arbeiten willst? |
AW: TDataSet per SELECT Filtern
Zitat:
Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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