![]() |
Datenbank: Firebird • Version: 2,5 • Zugriff über: Zeoslib
2 Query 's verbinden
Hallo,
gibt es eine Möglichkeit 2 Query's von 2 Datenbanken in einem DBGrid darzustellen ? Ich habe zwar gelesen das eine Abfrage über 2 Datenbanken mit Firebird 2,5 gehen soll aber kein Beispiel gefunden, deshalb suche ich jetzt eine Möglichkeit 2 getrennte Abfragen zu verknüpfen. Grüße Michael |
AW: 2 Query 's verbinden
Klar, du kannst doch einfach ein Nachschlagefeld in einem Query erstellen und dann aus einer DataSource nachschlagen, die zur anderen Datenbank gehört.
|
AW: 2 Query 's verbinden
Zitat:
Gruß K-H |
AW: 2 Query 's verbinden
Zitat:
![]() So richtigen Support haben sie dafür (noch) nicht. |
AW: 2 Query 's verbinden
Zitat:
Man könnte auch ein Calc-Field verwenden und manuell den Wert von sonstwo rüberziehen. Ansonsten bieten einige DBMS auch die Möglichkeit in einem Select oder DBFunction auf externe Datenbanken zuzugreifen. (manchmal sogar auf Welche eines komplett anderen DBMS) Wie das jetzt in Firebird geht ... k.A., aber siehe Bernhard. |
AW: 2 Query 's verbinden
Liste der Anhänge anzeigen (Anzahl: 1)
Das hat doch mit Firebird gar nichts zu tun, sondern mit deinen DB-Komponenten. Hab's doch eben extra nochmal getestet: Je eine Firedac-Connection mit Datenbank A und Datenbank B. Dann eine Query nebst Datasource und für jede DB eine Transaktionskomponente. Im Query, das mit DB-A verbunden ist legst du ein Nachschlagefeld an (siehe Bild unten; @p80286: heißt halt so ... Feldtyp: Nachschlagen). Dort gibts du als Nachschlage-Tabelle das Datasource des Queries an, das mit DB-B verbunden ist. Keinerlei Probleme.
Zitat:
|
AW: 2 Query 's verbinden
Der Zugriff auf mehrere Datenbanken geht mit Firebird, am Besten über eine Storedprocedure oder über ein Block Statement. Ist nicht ganz einfach, es gibt aber Beispiele dazu. Einfach mal nach "execute statement" und Firebird suchen.
|
AW: 2 Query 's verbinden
Wenn man den von Bernhard angesprochenen Beitrag zu Ende liest, ist das dort sogar verlinkt ;)
|
AW: 2 Query 's verbinden
Zitat:
|
AW: 2 Query 's verbinden
Interessant,
aber ich habe die ursprüngliche Fragestellung so verstanden, daß zwei Datenmengen, der gleichen bzw. ähnlichen Struktur (z.B. Adresssätze) in einem Grid dargestellt werden sollen. Also ungefähr so: db1 - Müller, Ferdinand db2 - Müller, Friedrich db1 - Müller, Friedrich db1 - Müller, Gustav db2 - Müntefehring, Annette db1 - Müntefehrin, Annete Gruß K-H |
AW: 2 Query 's verbinden
Du meinst eine UNION oder Ähnliches? Ja, könnte auch sein, wenn ich mir die Frage noch einmal genau durchlese.
|
AW: 2 Query 's verbinden
Selbst wenn das nur über eine storedproc geht, könnte man immernoch entweder in der Prozedur beides laden und ausgeben,
oder die SP läd nur das der anderen DB und
|
AW: 2 Query 's verbinden
Wäre es in diesem Fall dann nicht am einfachsten, ein TClientDataset zu verwenden? Mach ich z.B., wenn ich ganze Tabellen verschlüsselt abspeichern muß, die werden dann entschlüsselt im ClientDataset dargestellt, und dem ist es letztlich egal, woher seine Daten kommen.
Wenn man struktur-identische Records aus zwei verschiedenen Datenbanken verarbeiten muß, kann es jedoch generell zu diversen Problemen kommen, z.B. mit doppelt vorhandenen Datensätzen. Wäre es dann nicht sinnvoller, eine der beiden Datenbanken zu aktualisieren und dann nur mit dieser zu arbeiten? |
AW: 2 Query 's verbinden
Zitat:
Aber zunächst ist das nur Spökenkiekerei, Jick müßte da etwas konkreter werden. Gruß K-H |
AW: 2 Query 's verbinden
Hallo,
ich habe 2 Datenbanken und muss aus der 1. Datenbank Teile holen und in der 2. Datenbank prüfen ob Informationen über das Teil stehen welche ich über die TeileID finde. Einzeln abfragen ist ja nicht das Problem, aber ich weiß nicht wie ich die 2 Querys verknüpfe um das in einem DBGrid anzuzeigen . Grüße Michael |
AW: 2 Query 's verbinden
Eigentlich wurde hier schon alles genannt (wenigstens von Perlsau :)) was dazu benötigt wird:
1 ClientDataSet, was alle Daten aufnehmen kann 2 Abfragen verbunden als Master-Detail Jetzt durch die Master-Datenquelle gehen und die Daten aus beiden Datenquellen in das ClientDataSet einfügen. Das ClientDataSet dann im Grid anzeigen lassen. |
AW: 2 Query 's verbinden
Ein TClientDataSet/TBufDataSet(FPC) ist mit Zeos überhaupt nicht notwendig.
Zeos beinhalted seit Jahren eigene Mechanismen um die Daten aufnehmen zu können.. |
AW: 2 Query 's verbinden
Zitat:
![]() Die Vorgehensweise ist bei allen mir bekannten DB-Komponenten nahezu identisch: Du klickst mit der rechten Maustaste auf deine Query-Komponente, wählst den Eintrag "Feld-Editor" (so lautet er bei Zeos), klickst wiederum mit der rechten Maustaste in diesen Feldeditor, wählst "Alle Felder hinzufügen" und, nachdem alle Felder als sog. ![]() ![]() * Auch als Lookup-Felder bekannt, wobei ich als Deutscher die deutsche Bezeichnung bevorzuge, denn lookup heißt nichts anderes als nachschauen, nachschlagen. Es ist schon etwas gewöhnungsbedürftig, wenn man beobachtet, daß ein Programmierer den Begriff "nachschlagen" nicht kennt bzw. nicht einmal zu interpretieren weiß, bei "lookup" aber sofort bemerkt, worum's geht. Dasselbe begegnet mir häufig, wenn ich sowas lese wie "habe das upgeloaded/downgeloaded", statt "hochgeladen"/"heruntergeladen" oder "refreshed" statt "aktualisiert". Aber das ist eine andere Geschichte ... |
AW: 2 Query 's verbinden
vielen Dank, das hilft mir weiter.
Grüße Michael |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:01 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