Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi 2 Tabellen in 1 DBGrid (https://www.delphipraxis.net/110824-2-tabellen-1-dbgrid.html)

Tim Henford 25. Mär 2008 13:32

Datenbank: MS SQL 2000 • Zugriff über: ADO

2 Tabellen in 1 DBGrid
 
Hallo,

ist es möglich 2 Tabellen, die identische Strukturen haben in einem DBGrid anzuzeigen?
Delphi-Quellcode:
Tabelle1                   Tabelle2

ID Name Vorname     ID Name Vorname

1  a    d          1  g    j
2  b    e          2  h    k
3  c    f          3  i    l




DBGRID:

Name Vorname
a     d
b     e
c     f
g     j
h     k
i     l

Vielen Dank

Tim

mkinzler 25. Mär 2008 13:34

Re: 2 Tabellen in 1 DBGrid
 
Entweder per Join (nebeneinander) oder Union (untereinander)

Tim Henford 26. Mär 2008 15:25

Re: 2 Tabellen in 1 DBGrid
 
Danke, per Union klappt super.

Kann man jetzt die Tabellen noch irgendwie auseinander halten? Also ich möchte wissen aus welcher Tabelle welcher Name kommt?

mkinzler 26. Mär 2008 15:30

Re: 2 Tabellen in 1 DBGrid
 
Erweitere die Abfragen um eine Feld, in das du die Tabelle schreibst

Tim Henford 26. Mär 2008 15:55

Re: 2 Tabellen in 1 DBGrid
 
woher bekomm ich denn dann den Tabellennamen bzw. wie bastel ich den noch mit hinein?

SQL-Code:
SELECT Vorname,Name,ID FROM Tabelle1 UNION SELECT Vorname,Name,ID FROM Tabelle2

joachimd 26. Mär 2008 16:11

Re: 2 Tabellen in 1 DBGrid
 
SQL-Code:
SELECT Vorname,Name,ID, 'Tabelle 1' as Src FROM Tabelle1 
UNION
SELECT Vorname,Name,ID, 'Tabelle 2' as Src FROM Tabelle2

gmc616 27. Mär 2008 01:33

Re: 2 Tabellen in 1 DBGrid
 
Wenn ichs richtig verstanden habe, dann möchtest du Daten aus 2 Tabellen in einem Grid darstellen, also Zeile für Zeile.

also in der art
Code:
Tabelle1.Zeile1 Tabelle2.Zeile1
Tabelle1.Zeile2 Tabelle2.Zeile2
usw...
meiner Meinung nach funktioniert das nur praktikabel mit einem Join. Mit einer Union eher weniger.
Zwar kann man, wie joachimd schreibt, den Tabellen in der Anfrage mitgeben, aber mit einer Union bekommst du nur
Code:
Tabelle1.Zeile1 "Tabelle 1"
Tabelle2.Zeile1 "Tabelle 2"
Tabelle1.Zeile2 "Tabelle 1"
Tabelle2.Zeile2 "Tabelle 2"
Ich denke aber das du eher pro Zeile alle Daten haben möchtest.
Ob man über die Fielddefs an den Tabellenname heran kommt, weiß ich nicht genau, konnte man aber probieren.

Mein alternativer Vorlage wäre, die einzelnen Felder zu labeln.
SQL-Code:
SELECT
  a.Vorname as "Tabelle1.name",
  a.Name as "Tabelle1.Name",
  a.ID as "Tabelle1.ID",
  b.Vorname as "Tabelle2.name",
  b.Name as "Tabelle2.Name",
  b.ID as "Tabelle2.ID"
FROM
  Tabelle1 a,
  Tabelle2 b,
WHERE
  a.ID = b.ID --  als beispiel
Die Abfrage muß dann natürlich zB. so lauten
Delphi-Quellcode:
 Query.FieldByName('Tabelle1.Name').AsString;
Wenn du das ganze 'n bissl intelligent programmierst, weißt du genau, welches Value aus welcher Tabelle kommt.

:hi:

mkinzler 27. Mär 2008 05:39

Re: 2 Tabellen in 1 DBGrid
 
Ich würde Joins nur verwenden, wenn eine Beziehung zwischen den beiden Tabellen besteht.

marabu 27. Mär 2008 06:41

Re: 2 Tabellen in 1 DBGrid
 
Moin,

Zitat:

Zitat von gmc616
... Ich denke aber das du eher pro Zeile alle Daten haben möchtest. ...

in Beitrag #1 beschreibt Tim das gewünschte Ergebnis ganz gut und in Beitrag #3 bestätigt er, dass UNION seine Anforderung erfüllt. Du hast dich wohl durch seine Darstellung der beiden Ausgangstabellen nebeneinander irritieren lassen.

Freundliche Grüße

Tim Henford 27. Mär 2008 08:21

Re: 2 Tabellen in 1 DBGrid
 
@all: danke für die Hilfe
@gmc616:
dank dir für die Alternative, das wäre sicherlich auch eine interessante Möglichkeit, wie gesagt, für die Anwendung hier ist union das, was ich gesucht habe, aber das andere ist auch recht nützlich...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:09 Uhr.
Seite 1 von 2  1 2      

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