Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Verknüpfen von Datenbanken über ADODatasets (https://www.delphipraxis.net/152652-verknuepfen-von-datenbanken-ueber-adodatasets.html)

news2swen 30. Jun 2010 15:03

Datenbank: Oracle/Text • Version: 9 • Zugriff über: ADO

Verknüpfen von Datenbanken über ADODatasets
 
Hallo zusammen

ich möchte gern eine Verbindung zwischen mehreren ADODatasets herstellen.

Ich habe eine Oracle-Datenbank mit diversen Tabellen. Daraus hole ich mir mittels SQL meine Daten. Diese lade ich in ein ADODataset. Ausserdem habe ich eine Textdatei, in welcher ich ebenfalls Datensätze gespeichert habe. Diese lese ich in ein temporäres Recordset, welches an einem weiteren ADODataset hängt. Soweit alles kein Problem.

In der Textdatei sind sowohl Daten, welche denen der Datenbank zu 100% entsprechen, es gibt Datensätze welche abgeändert sind und es gibt neue Datensätze.
Nun hätte ich gern ein drittes Dataset, welche mir die verknüpften Datasets anzeigt. Ich dachte da an sowas wie "Select * from Dataset1, Dataset2 where dataset1.key=dataset2.key(+)".

Gibt es eine derartige Möglichkeit?
Den Weg, eine Tabelle in der OracleDB zu erstellen, welche die Textdateidaten enthält möchte ich umgehen, da zum einen mehrere Benutzer gleichzeitig in dem Programm arbeiten sollen (da würde einer die Daten des anderen angezeigt bekommen) und was noch schwerer wiegt, ist dass der Datenbanknutzer keine Tabellen anlegen darf.

Gruß
Swen

Stevie 30. Jun 2010 16:07

AW: Verknüpfen von Datenbanken über ADODatasets
 
Evtl. wären disconnected Recordsets was für dich.

mkinzler 30. Jun 2010 16:23

AW: Verknüpfen von Datenbanken über ADODatasets
 
Oder verwende ein MERGE Statement

nahpets 1. Jul 2010 07:34

AW: Verknüpfen von Datenbanken über ADODatasets
 
Hallo,
Zitat:

Zitat von news2swen (Beitrag 1032653)
Hallo zusammen

ich möchte gern eine Verbindung zwischen mehreren ADODatasets herstellen.

Ich habe eine Oracle-Datenbank mit diversen Tabellen. Daraus hole ich mir mittels SQL meine Daten. Diese lade ich in ein ADODataset. Ausserdem habe ich eine Textdatei, in welcher ich ebenfalls Datensätze gespeichert habe. Diese lese ich in ein temporäres Recordset, welches an einem weiteren ADODataset hängt. Soweit alles kein Problem.

In der Textdatei sind sowohl Daten, welche denen der Datenbank zu 100% entsprechen, es gibt Datensätze welche abgeändert sind und es gibt neue Datensätze.
Nun hätte ich gern ein drittes Dataset, welche mir die verknüpften Datasets anzeigt. Ich dachte da an sowas wie "Select * from Dataset1, Dataset2 where dataset1.key=dataset2.key(+)".

Gibt es eine derartige Möglichkeit?
Den Weg, eine Tabelle in der OracleDB zu erstellen, welche die Textdateidaten enthält möchte ich umgehen, da zum einen mehrere Benutzer gleichzeitig in dem Programm arbeiten sollen (da würde einer die Daten des anderen angezeigt bekommen) und was noch schwerer wiegt, ist dass der Datenbanknutzer keine Tabellen anlegen darf.

Gruß
Swen

Du kannst in Oracle ruhig eine Tabelle nehmen und zwar eine temporäre. Die hat den Vorteil, dass jeder Nutzer quasi seine eigene Instanz der Tabelle hat und damit die Daten der verschiedenen Nutzer nicht "durcheinander" geraten. Die temporäre Tabelle wird nach dem Beenden der Verbindung automatisch geleert, so dass in der Datenbank keine "Datenreste" übrigbleiben, die Du noch manuell entsorgen muss. Die temporäre Tabelle kannst Du beliebig in Deine SQL-Statements mit einbeziehen, kannst sie mit 'nem entsprechenden Index versehen...

Ein bisserl Info dazu: http://www.oracle-base.com/articles/...raryTables.php, http://www.java2s.com/Code/Oracle/Ta...orarytable.htm

news2swen 1. Jul 2010 10:03

AW: Verknüpfen von Datenbanken über ADODatasets
 
Hallo

vielen Dank für die schnelle Hilfe. Die Variante von naphets mit den temporären Tabellen in Oracle ist echt Klasse. Die kannte bis jetzt nicht mal unser DBA :-D.

Das MERGE nutzt in diesem Falle leider gar nichts, da ich ja meine Daten nicht miteinander bekannt machen kann. Der User muss die Ergebnismenge sehen um zu entscheiden, welche Daten welcher Aktion unterliegen sollen.

Das mit den disconnected Recordsets hab ich nicht verstanden. Wie würden die denn mein Problem lösen können? Kannst Du da nähere Ausführungen machen?

Danke


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