Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Tabellen aus verschiedenen Datenbanken kombinieren (https://www.delphipraxis.net/49745-tabellen-aus-verschiedenen-datenbanken-kombinieren.html)

vsti 15. Jul 2005 10:17

Datenbank: Interbase • Version: 6 • Zugriff über: dbExpress

Tabellen aus verschiedenen Datenbanken kombinieren
 
Moin moin,

folgendes bereitet mir Kopfzerbrechen. Und zwar ist es notwendig, dass zwei Tabellen mit idenischen Feldnamen aus zwei verschiedenen Datenbanken in einem DBGrid kobiniert werden sollen.

Bei den BDE-Querys konnte man dieses mit den SQL-Befehl "union" bewerkstelligen, allerdings ist jetzt dbExpress+Interbase im Einsatz und da ist dieses nicht mehr möglich.

Gibt es eine Lösung, die nicht allzu zeitaufwendig ist?

Bin für jeden Vorschlag dankbar!

greez,
vsti

Igotcha 15. Jul 2005 10:28

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
Hi,

also grundsätzlich kann man mehrere Datenbanken so ansprechen (zumindest bei mySQL):

Delphi-Quellcode:
DATENBANKNAME.TABELLENNAME.FELDNAME

also z.B.

SELECT * FROM DB1.TABELLE1, DB2.TABELLE1
Gruß Igotcha

Jasocul 15. Jul 2005 10:31

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
Mir ist nicht klar, wo das Problem ist. Interbase kann doch union, afaik.

@igotcha:
Beim Union werden die Tabellen "untereinander" angehängt.
In deinem Beispiel würde eine Kreuztabelle aus den beiden Tabellen erzeugt.

vsti 15. Jul 2005 10:46

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
@jascoul
ja, union innerhalb einer Datenbank funktioniert wohl, aber nicht mit unterschiedlichen.

Der Weg von Igocha kann auch nicht gehen, weil man in den Komponenten schon bei SQLConnection die Datenbank angeben muss, in der gearbeitet wird. Da liegt ja das eigentliche Problem.

Jasocul 15. Jul 2005 10:49

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
Ist es denn wenigstens beides interbase? Sonst dürfte es nämlich gar nicht gehen.
Falls ja, könntest du evtl. in der einen Datenbank ein View machen, der auf die andere Datenbank geht. Dann hast du eine Tabelle und ein View in einer Datenbank, die dann mit einem Union verknüpft werden.

vsti 15. Jul 2005 10:51

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
jo, ist beides Interbase.
"View" kenne ich noch nicht, das werde ich mir mal anschauen, wäre toll wenn das geht.

thx schonmal

Jasocul 15. Jul 2005 10:54

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
Gut möglich, dass du dann noch Rechte für die andere Datenbank benötigst. Siehe dir dazu den Befehl Grant an.

Igotcha 15. Jul 2005 10:59

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
Zitat:

Zitat von vsti
@jascoul
ja, union innerhalb einer Datenbank funktioniert wohl, aber nicht mit unterschiedlichen.

Der Weg von Igocha kann auch nicht gehen, weil man in den Komponenten schon bei SQLConnection die Datenbank angeben muss, in der gearbeitet wird. Da liegt ja das eigentliche Problem.

Also bei mir funktioniert es mit dem Tool "mySQL-Front" als SQL-Abfrage so einwandfrei - also muß es (irgendwie) möglich sein.

vsti 15. Jul 2005 11:13

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
also rechte habe ich wohl auf allen Datenbanken. Nur habe ich das gefühl, das VIEW wieder nicht Datenbankenübergreifend funktioniert.
werder wenn ich sage

SQL-Code:
SELECT * FROM db1.table1
noch wenn ich sage

SQL-Code:
CREATE VIEW temp AS
SELECT * from db1.table1

Jasocul 15. Jul 2005 11:16

Re: Tabellen aus verschiedenen Datenbanken kombinieren
 
Du hast vielleicht schon die Rechte. Allerdings benötigt die eine Datenbank das Recht, auf der anderen Datenbank eine Select auszuführen.
Du brauchst ein "Grant rights...".
Die Syntax habe ich gerade nicht parat. Sorry.

Ein Link
Ich hoffe, der hilft dir.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr.
Seite 1 von 2  1 2      

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