![]() |
Datenbank: Interbase • Zugriff über: BDE
Mehrere Tabellen in einem DBGrid darstellen
Hallo,
ich möchte gerne mehrere Tabellen in einem DBGrid darstellen, da ich die nötige Anzahl der Spalten nicht in eine Tabelle bekomme. Es handelt sich um ca. 600 Spalten, der Aufbau sieht wie folgt aus: Tabelle1: KommNr|Edit1|Edit2|... Tabelle2: KommNr|Edit255|Edit256|... Tabelle3: KommNr|Edit510|Edit511|...|Edit600 Es sollen eh nicht alle angezeigt werden aber in dem Programm selber kann man auswählen welche Felder hinterher sichbar sind ... z.B.: Nr|Edit2|Edit15|Edit300|Edit401|Edit555 Das schönste wäre natürlich, wenn mit jemand sagen kann wie ich 600 Spalten in eine Tabelle bekomme. Wenn die beiden obrigen Varianten nicht möglich sind, dann werde ich die Daten manuell in ein Grid einfügen müssen... ...oder besser noch ??? 3 DBGrid visible=false und ein StringGrid für die Darstellung (DBGrid1+DBGrid2+DBGrid3=StringGrid)??? Das Problem ist nur, ich möchte hinterher noch sortieren können!!! Ich hoffe Ihr könnt mir helfen. Vielen Dank |
Re: Mehrere Tabellen in einem DBGrid darstellen
Das Zauberwort heisst Join.
Aber dazu ein paar Bemerkungen: -Wie praktisch ist es deart viele Felder gelichzeitig in einem Grid darzustellen? -Du solltest dich mal mit dem Thema Normalisierung beschäftigen. |
Re: Mehrere Tabellen in einem DBGrid darstellen
Hallo,
vielen Dank für die Antwort, habe mir verschiedene Beiträge durchgelesen, kriege es aber nicht richtig hin. 1. ich habe eine TIBQuery angelegt 2. habe ich diese als Datasource bei dem DBGrid hinterlegt 3.:
Delphi-Quellcode:
...wird beim Start ausgeführt...
mprodata.IBQuery.SQL.Clear;
mprodata.IBQuery.SQL.Add('SELECT KOMM.KOMMNR, KOMM.DATUM, KOMM2.DBEDIT255 FROM KOMM INNER JOIN KOMM AS KOMM2 ON KOMM.KOMMNR=KOMM2.KOMMNR'); mprodata.IBQuery.Open; Allerdings bekomme ich die Meldung 'Column unknown KOMM2.DBEDIT255' Allerdings gibt es die Tabelle KOMM2.EDIT255 Vielen Dank für Eure Hilfe. |
Re: Mehrere Tabellen in einem DBGrid darstellen
SQL-Code:
SELECT
K.KOMMNR, K.DATUM, K2.DBEDIT255 FROM KOMM k JOIN KOMM k2 ON K2.KOMMNR=K.KOMMNR; |
Re: Mehrere Tabellen in einem DBGrid darstellen
Bei neuen Abfragen würde ich grundsätzlich IMMER zuerst eine geeignete GUI für die Abfrage verwenden. Wenn die Abfrage nämlich hier funktioniert und in deinem Programm nicht, dass weißt Du, dass der Fehler in Deinem Programm liegen muss. An sonsten kann man in der GUI die Abfrage entsprechend Anpassen und sieht gleich die Resultat-Tabelle.
Außerdem arbeitet es sich mit den GUIs wirlich sehr übersichtlich und komfortabel... Das nur als TIP :) SCRaT |
Re: Mehrere Tabellen in einem DBGrid darstellen
Hallo und vielen Dank für die Antworten.
Bin leider erst jetzt dazu gekommen weiter zu programmieren. Mein Query und JOIN Problem ist gelöst und funktioniert soweit. Allerdings habe ich noch ein Problem mit der Sortierung.
Delphi-Quellcode:
'sort' ist eine Variable dir ich über das klicken des spaltentitels füttere.
('SELECT K.KOMMNR, K.DATUM, K.DATUM_CHANGE, K.TERMIN, K.FIXTERMIN' + gridliste + ' FROM KOMM K JOIN KOMM2 K2 ON K2.KOMMNR=K.KOMMNR JOIN KOMM3 K3 ON K3.KOMMNR=K.KOMMNR JOIN KOMM4 K4 ON K4.KOMMNR=K.KOMMNR where ERLEDIGT = 0 and ARCHIV = 0 ORDER BY '+sort);
Die Sortierung funktioniert für die Tabelle KOMM einwandfrei, allerding wenn man nach einer Spalte aus den anderen Tabellen sortieren möchte, kommt eine Fehlermeldung. Habe auch versucht über "ORDER BY K2.SPALTENNAME" zu sortieren, funzt auch nicht. Vielen Dank für Eure Hilfe. Mit den GUI werde ich mich noch beschäftigen, vielen Dank für die Info. Gruss, Sebastian |
Re: Mehrere Tabellen in einem DBGrid darstellen
Es soll ja DBS geben die müssen das Sortierfeld auch in der ausgabe haben.
halte ich aber für ein böswilliges Gerücht. Gruß K-h |
Re: Mehrere Tabellen in einem DBGrid darstellen
Mein Problem hat sich erledigt, die Fehlermeldung kam von einem IndexFieldbyName auf die erste Datenbank. :wall:
mit "...ORDER BY K2.Spaltenname" oder "...ORDER BY K3.Spaltenname" usw. funktioniert es doch. Vielen Dank. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 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