![]() |
Datenbank: ADS • Version: 8 • Zugriff über: ADS-Komponenten
Ein Query auf drei Grids verteilen
Hallo zusammen,
ich habe ein Query und möchte die Datenmenge auf drei DBGrids aufteilen. Als Kennzeichen für die Aufteilung soll ein Feld in der Datenmenge dienen. Da ich jetzt schon ein paar erfolglose Versuche hinter mir habe, hier die Frage, ob das überhaupt geht. mfG Mike |
Re: Ein Query auf drei Grids verteilen
Da wäre es ja sinnvoller 3 Queries zu verwenden
|
Re: Ein Query auf drei Grids verteilen
Ist das nicht etwas viel Aufwand für eine "einfache" Aufteilung der Daten ?
Könnte man nicht einen Filter auf das DBGrid setzen ? |
Re: Ein Query auf drei Grids verteilen
Du kannst dem DBGrid schon irgendwie mitteilen, welche Spalten es anzeigen soll.
Aber das mit den drei Queries finde ich auch besser. |
Re: Ein Query auf drei Grids verteilen
Zitat:
So wie ich dein Posting aber verstehe, willst du eine horizontale Aufteilung (keine Selektion der Felder, sondern der Datensätze) anhand des Inhaltes eines der Felder!? In diesem Fall folge dem Rat der anderen und schreib 3 Queries. Nachtrag: Du kannst auf eine AdsQuery auch einen Filter anlegen, aber das betrifft dann alle drei Grids gleichermaßen. Ein Grid kann nicht filtern, nur die zugrundeliegende Datenmenge. |
Re: Ein Query auf drei Grids verteilen
Zitat:
Zitat:
Zitat:
Meine Lösung sieht jetzt so aus: Ich habe das EINE Query und durchlaufe die gesamte Datenmenge (WHILE ...). In einer Spalte der Datenmenge steht ein Wert. In Abhängigkeit von diesem Wert befülle ich dann drei StringGrids. Da die Daten nur angezeigt werden sollen, ist das sicher einfacher, als drei fast gleiche Queries mit drei anhängenden DBGrids und drei DataSources zu verwenden. Man stelle sich mal vor, ich müßte die SQL-Abfrage (so etwa 100 Zeilen mit Parameter und Unions) ändern. So habe ich nur eine Änderung statt drei zu machen. Mike |
Re: Ein Query auf drei Grids verteilen
Richtig.
StringGrid selber befüllen ist auch ne gute Alternative. |
Re: Ein Query auf drei Grids verteilen
How to cook drei Grids aus einer Query.
1x query 3x TProvider (an die query beppseln) 3x TClientDataset (mit individuellen filtern) 3x Tdatasource an die TClientDatasets 3x TDBGrid an die TDatasourcen Tipp: Die Reihenfolge, wie man die Clientdatasets und die Query öffnet und schließt ist entscheidend. WEnn man zur Designzeit damit rumspielt, immer wieder die TClientdatasets per Rechte-Maus-Taste leeren (Clear Data oder so) 3 Queries wären zwar einfacher, aber wenn die Query an sich schon aufwändig ist, ist meine Lösung performanter. |
Re: Ein Query auf drei Grids verteilen
Zitat:
|
Re: Ein Query auf drei Grids verteilen
Hallo,
das mit 100 Zeilen ändern -> grosser Aufwand kann ich nicht so gelten lassen. Du kannst ja eine CreateQuery(TheQuery: TAbsQuery) schreiben. Die erzeugt den Query-Text (per SQL.Add) für die 3 Queries. Heiko |
Re: Ein Query auf drei Grids verteilen
@Joachimd
Hallo , die Lösung von Mike_on_Tour (eine Query, drei StringGrids) verwende ich auch. Weil 1) meistens muß ich die Query-Ergebnisse erst noch durch die Datenmühle drehen, bevor ich sie anzeige, 2) ich wollte das "Datenholen" von der Oberfläche entkoppeln, damit ich mit gleicher Oberfläche mehrere unterschiedliche DBs bedienen kann, 3) "das bischen verteilen" erledigt mein PC schneller als die Daten hereintröpfeln und (ich bin mir nicht ganz sicher, aber irgendwo hab ich das schonmal hingekriegt) mit application.processmessages bekommt man eine Anzeige bevor alle Daten im Stringgrid eingefügt sind. Gruß K-H |
Re: Ein Query auf drei Grids verteilen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 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