![]() |
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 |
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Hi,
also grundsätzlich kann man mehrere Datenbanken so ansprechen (zumindest bei mySQL):
Delphi-Quellcode:
Gruß Igotcha
DATENBANKNAME.TABELLENNAME.FELDNAME
also z.B. SELECT * FROM DB1.TABELLE1, DB2.TABELLE1 |
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. |
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. |
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. |
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 |
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.
|
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Zitat:
|
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:
noch wenn ich sage
SELECT * FROM db1.table1
SQL-Code:
CREATE VIEW temp AS
SELECT * from db1.table1 |
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. ![]() Ich hoffe, der hilft dir. |
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Selbe Geschichte: GRANT geht nur mit Tables, und wiederum nur innerhalb der aktiven Datenbank.
|
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Zitat:
Gruß Igotcha |
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Interbase kann keine Cross Database queries. Hat es noch nie gekonnt.
Bei der BDE hattest du wohl irgendeinen zusätzlichen Layer untendrunter, der die Abfragen aneinandergehängt hat. |
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Ok, dann hat sich das wohl geklärt :/
dennoch thx für die Bemühungen :) |
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Benutz' doch den ODBC-Treiber und bau Dir das ganze z.B. in Access auf.
Dann nutz' die ADO-Komponenten von Delphi und öffne darüber die Access-Abfrage... |
Re: Tabellen aus verschiedenen Datenbanken kombinieren
:shock: Dann könnte er ja gleich zurück zur BDE gehen und ist trotzdem schneller....
|
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Zitat:
|
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Hehe, ja etwas dämlich ist das schon. Aber ich bin tatsächlich zu dem Enschluss gekommen dieses eine Modul auf BDE zu lassen. Vielleicht gibts ja irgendwann etwas was dieses Problem behebt.
have fun |
Re: Tabellen aus verschiedenen Datenbanken kombinieren
Du kannst zwar keine heterogenen Anfragen in Interbase SQL formulieren, aber über den Umweg einer temporären Tabelle und einer stored procedure sollte es gehen.
Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 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