Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   2 Query 's verbinden (https://www.delphipraxis.net/183491-2-query-s-verbinden.html)

DeddyH 14. Jan 2015 12:52

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.

himitsu 14. Jan 2015 13:50

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
  • bei gleichen Feldern untereinander, wird es per UNION an die lokale Tabelle gehängt
  • bei unterschiedlichen Feldern nebeneinander, wird es per JOIN drangehängt

Perlsau 14. Jan 2015 13:57

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?

p80286 14. Jan 2015 21:03

AW: 2 Query 's verbinden
 
Zitat:

Zitat von DeddyH (Beitrag 1286514)
Du meinst eine UNION oder Ähnliches? Ja, könnte auch sein, wenn ich mir die Frage noch einmal genau durchlese.

Ja aber nur ähnlich!
Aber zunächst ist das nur Spökenkiekerei, Jick müßte da etwas konkreter werden.

Gruß
K-H

Jick 14. Jan 2015 21:56

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

Sir Rufo 14. Jan 2015 22:41

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.

EgonHugeist 14. Jan 2015 22:55

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..

Perlsau 15. Jan 2015 04:20

AW: 2 Query 's verbinden
 
Zitat:

Zitat von Jick (Beitrag 1286543)
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.

Also handelt es sich doch um eine Master-Detail-Abfrage: Master ist die Tabelle in der 1. Datenbank, die die Teilebezeichnungen und den zugehörigen Primary-Key enthält, Detail ist die Tabelle in der 2. Datenbank, welche weitere Informationen über die Teile in der Mastertabelle enthält. Um den Inhalt dieser beiden Tabellen in einem DB-Grid anzeigen zu lassen, benötigst du in der Tat kein ClientDataset, wie EgonHugeist oben bereits betont hatte, sondern arbeitest mit zusätzlich in deiner Query oder deinem Dataset angelegten Nachschlage-Feldern.*

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. persistente Felder angelegt wurden, wieder rechte Maustaste im Feldeditor und "Neues Feld" auswählen. Alles weitere habe ich bereits oben beschrieben. Das funktionierte bei mir bislang mit jeder Datenbank.

* 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 ...

Jick 15. Jan 2015 07:42

AW: 2 Query 's verbinden
 
vielen Dank, das hilft mir weiter.

Grüße
Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
Seite 2 von 2     12   

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