AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Mehrere Tabellen in einem DBGrid darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Tabellen in einem DBGrid darstellen

Ein Thema von sebastian1979 · begonnen am 2. Feb 2010 · letzter Beitrag vom 11. Mär 2010
Antwort Antwort
sebastian1979

Registriert seit: 22. Jan 2010
Ort: Solingen
16 Beiträge
 
Delphi 2005 Professional
 
#1

Mehrere Tabellen in einem DBGrid darstellen

  Alt 2. Feb 2010, 07:54
Datenbank: Interbase • Zugriff über: BDE
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Mehrere Tabellen in einem DBGrid darstellen

  Alt 2. Feb 2010, 08:05
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.
Markus Kinzler
  Mit Zitat antworten Zitat
sebastian1979

Registriert seit: 22. Jan 2010
Ort: Solingen
16 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Mehrere Tabellen in einem DBGrid darstellen

  Alt 3. Feb 2010, 07:33
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:
  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;
...wird beim Start ausgeführt...

Allerdings bekomme ich die Meldung 'Column unknown KOMM2.DBEDIT255'

Allerdings gibt es die Tabelle KOMM2.EDIT255

Vielen Dank für Eure Hilfe.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Mehrere Tabellen in einem DBGrid darstellen

  Alt 3. Feb 2010, 07:47
SQL-Code:
SELECT
    K.KOMMNR, K.DATUM, K2.DBEDIT255
FROM
    KOMM k
        JOIN KOMM k2 ON K2.KOMMNR=K.KOMMNR;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Mehrere Tabellen in einem DBGrid darstellen

  Alt 3. Feb 2010, 12:31
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
Michael Kübler
  Mit Zitat antworten Zitat
sebastian1979

Registriert seit: 22. Jan 2010
Ort: Solingen
16 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Mehrere Tabellen in einem DBGrid darstellen

  Alt 10. Mär 2010, 14:36
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.

('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); 'sort' ist eine Variable dir ich über das klicken des spaltentitels füttere.

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
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Mehrere Tabellen in einem DBGrid darstellen

  Alt 10. Mär 2010, 15:36
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
sebastian1979

Registriert seit: 22. Jan 2010
Ort: Solingen
16 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Mehrere Tabellen in einem DBGrid darstellen

  Alt 11. Mär 2010, 06:27
Mein Problem hat sich erledigt, die Fehlermeldung kam von einem IndexFieldbyName auf die erste Datenbank.

mit "...ORDER BY K2.Spaltenname" oder "...ORDER BY K3.Spaltenname" usw. funktioniert es doch.

Vielen Dank.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz