Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi 2 Datenbanken über Join verknüpfen. Denkfehler? (https://www.delphipraxis.net/79471-2-datenbanken-ueber-join-verknuepfen-denkfehler.html)

HartiMcFly 23. Okt 2006 11:02

Datenbank: Firebird • Zugriff über: IB Komponenten

2 Datenbanken über Join verknüpfen. Denkfehler?
 
Hallo zusammen,

ich habe 2 Datenbanken. Ich muß diese im Delphi miteinander verbinden.

Ich bin folgendermaßen vorgegangen.
Für jede Datenbank IBDatabse, IBTransaktion, IBQuery, IBUpdateSQL, DataSource ( weißt auf den jeweiligen IBQuery )

Im ersten IBQuery folgende SQL Anweisung

select * from STAMMDATEN

Im zweiten IBQuery DataSource des ersten IBQuery ausgewählt, und folgende SQL Anweisung

select TELEFON.TELEFON, TELEFON.FAX, TELEFON.RAUM, STAMMDATEN.NAME FROM TELEFON INNER JOIN STAMMDATEN ON TELEFON.ID=:STAMMDATEN.ID

Als Fehlermeldung erhalte ich

Dynamic SQL Error, SQL Error Code = -104 Token unknown -line 1, char 108.

ich gehe mal davon aus, dass ich nur einen kleinen Dreher habe, aber wirklich finden tu ich ihn nicht.

Nehme ich folgenden Doppelpunkt ( TELEFON.ID=:STAMMDATEN.ID) heraus, bekomme ich die Fehlermeldung Table unknown Stammdaten.
Wo muß ich denn noch auf diese Tabelle verweisen?

Vielleicht kann ja von euch mal jemand drüber schauen.

Danke Patrick

chaosben 23. Okt 2006 11:05

Re: 2 Datenbanken über Join verknüpfen. Denkfehler?
 
Ja, du hast einen Denkfehler. :-D

Man kann 2 Datenbanken nicht joinen. Das geht maximal mit 2 Tabellen innerhalb einer Datenbank.

HartiMcFly 23. Okt 2006 11:32

Re: 2 Datenbanken über Join verknüpfen. Denkfehler?
 
Schade aber auch...

Danke trotzdem

Patrick

Bernhard Geyer 23. Okt 2006 12:11

Re: 2 Datenbanken über Join verknüpfen. Denkfehler?
 
Zitat:

Zitat von chaosben
Ja, du hast einen Denkfehler. :-D

Man kann 2 Datenbanken nicht joinen. Das geht maximal mit 2 Tabellen innerhalb einer Datenbank.

Nicht unbedingt Denkfehler. Je nach verwendete Datenbank und Zugriffsschicht ist es sehr wohl möglich aus verschiedenen Datenbanken Tabellen zu verknüpfen. Desktopdatenbanken dürften das alle können indem einfach mit kompletten Pfadangaben gearbeitet wird aber auch der MS SQL-Server (von dem kenne ich es) kann auch auf andere DB's zugreifen. AFAIK auch über einen passenden ADO/OLE DB-Provider z.B. auch auf einen Oracle-Server oder aufs Dateisystem. Ob das Firebird auch kann (zwischen 2 Firebird-DB's sollte auch möglich sein, jedenfalls wenn diese im gleichen DBMS laufen) bin ich überfragt (kenn Firebird nur vom Namen), aber probier doch einfach mal noch zusätzlich den Datenbank-Namen anzugeben.

Also <DatenbankName>.<Tabellen/AliasName>.<FeldName> um entsprechend den Zugriff zu erhalten.

shmia 23. Okt 2006 16:02

Re: 2 Datenbanken über Join verknüpfen. Denkfehler?
 
Zitat:

Zitat von HartiMcFly
ich habe 2 Datenbanken. Ich muß diese im Delphi miteinander verbinden.

Der Fachbegriff dazu lautet Bei Google suchenheterogeneous join.
Wann immer möglich, sollte man diese Art von Joins vermeiden, da meist ein erheblicher Leistungseinbruch entsteht oder der Join gar nicht möglich ist.

Hansa 23. Okt 2006 16:23

Re: 2 Datenbanken über Join verknüpfen. Denkfehler?
 
Was ist in den 2 Datenbanken denn genau drin ? Ich habe das dumpfe Gefühl, daß es das ist, was eigentlich in 2 Tables einer Datenbank gehört. 8) Desweiteren ist es mit Firebird 1.5 kein großes Problem ein Script der einen Datenbank zu erstellen, den Dateinamen abzuändern (auf zweite DB) und es laufen zu lassen. Gehe mal in IBExpert hin und sage "Extract Metadata", dann Data tables und dann die zu joinende Datatable auswählen. Wenns gelingt wirst Du sofort sehen, was ich meine. 2 Databases nutze ich auch, aber nur aus Datensicherungsgründen. Die DBs sind völlig unabhängig, wobei die eine allerdings ziemlich groß ist, zugleich aber relativ unwichtig. Die kleinere muß aber mindestens täglich gesichert werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 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