AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Tabellenfelder 2 versch. Datenbanken vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Tabellenfelder 2 versch. Datenbanken vergleichen

Ein Thema von Luckner · begonnen am 3. Apr 2018 · letzter Beitrag vom 5. Apr 2018
Antwort Antwort
Seite 2 von 3     12 3      
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 15:31
Das grosse Problem ist, dass ich auf die Firebird-Tabelle mit TDataset zugreife und auf die ACCESS mit einer ADO-Komponnente. Die Verknüpfung bekommen ich nicht hin.

Verbindung zu Firebird-Datenbank geht über "DatamoduleRohwareLager.DataModule9.IBDatabaseRohw areBewegung.Connected := true;"

Die einzelnen SQL-Statemens funktionieren für sich alleine gut.

Luckner.
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#12

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 15:47
In der Regel dürfte es nicht funktionieren, über zwei verschiedene Datenbanken hinweg eine SQL-Abfrage zu machen. Die beiden wissen ja nichts voneinander.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 15:52
In der Regel dürfte es nicht funktionieren, über zwei verschiedene Datenbanken hinweg eine SQL-Abfrage zu machen. Die beiden wissen ja nichts voneinander.
Wenn das tatsächlich die Absicht des Codes sein sollte, dann ist es ein Irrweg, ja.
Die Statements aus dem Eröffnungsthread sehen jedenfalls unvollständig aus, ein Gemisch aus Join und Where Syntax.

Falls wirklich Access mit Firebird gejoined werden soll, dann würde ich das (wenn es leider nun mal da ist) in Access selbst machen:
- FB Tabelle oder Viewe in Access verlinken per ODBC
- Abfrage in Access aus Access Tabelle und Firebird Link erzeugen.
- Abfrage in der Anwendung öffnen (oder eben zur Probe gleich in Access)
Gruß, Jo
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#14

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 15:55
Bitte erkläre mal, was Du genau vorhast, irgendwie scheine ich das noch nicht so recht begriffen zu haben.

Willst Du quasi sowas machen?
SQL-Code:
select t1.ROHWARENR, t1.FORMAT, t1.OBERMATERIAL
from Accessdatenbank.ROHWARESTAND t1
LEFT JOIN Firebirddatenbank.Artikel t2
on t1.ROHWARENR = t2.Art-Nr
where t1.FORMAT <> t2.Format');
OR t1.OBERMATERIAL <> t2.Numerierung
order by ROHWARENR
Wenn ja, dann führe Dir mal diese Anleitung zu Gemüte: Importieren von oder Verknüpfen mit Daten in einer anderen Access-Datenbank

Beim Zugriff über ADO / ODBC könnte das, sofern ein entsprechender Treiber für Firebird eingerichtet ist, funktionieren.

Jobo beschreibt ja, wie es gehen sollte.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#15

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 16:08
In der Regel dürfte es nicht funktionieren, über zwei verschiedene Datenbanken hinweg eine SQL-Abfrage zu machen. Die beiden wissen ja nichts voneinander.
Viele DBMS bieten Funktionen/Extensions an, wo man in der DB zu anderen DB oder gar anderen DBMS eine Verbindung aufbaut und Abfragen schicken kann.

z.B.
Cross-Server-Tabelle > Foreign Data Wrappers (permanent DB Link)
https://www.postgresql.org/docs/9.2/...tawrapper.html
https://wiki.postgresql.org/wiki/Foreign_data_wrappers

Cross-Server-Link > DB Link (temporär, old style)
https://www.postgresql.org/docs/9.3/static/dblink.html
$2B or not $2B

Geändert von himitsu ( 3. Apr 2018 um 16:12 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#16

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 16:12
Viele DBMS bieten Funktionen/Extensions an, wo man in der DB zu anderen DB oder gar anderen DBMS eine Verbindung aufbaut und Abfragen schicken kann.
Aber eher nicht über Delphi Datenmodule, oder?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#17

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 16:14
Aber eher nicht über Delphi Datenmodule, oder?
Doch.
FireDAC kann es

Bei Google suchenLocalSQL
Bei Google suchenFireDAC LocalSQL



Aber wie gesagt, mindestens eine der beiden DBMS kann sowas bestimmt auch serverseitig.
z.B. in MS-Access eine Verbindung zu Firebird aufbauen und dann im MS-Access die SELECTs zu beiden Datenbanken ausführen.

Bei den Foreign Data Wrappers in Postgres kannst du sogar beide SELECTs zusammen in einem JOIN ausführen und den "Vergleich" direkt im SQL und nicht erst clientseitig manuell erledigen.
$2B or not $2B

Geändert von himitsu ( 3. Apr 2018 um 18:11 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#18

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 16:20
Oh! Ich bin überrascht!
Ist aber dann dennoch nicht die von Dir genannte Technik einer heterogenen Datenbankverbindung zwischen verschiedenden DBMS.
Gruß, Jo
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#19

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 16:21
Mein Problem ist folgendes:
Es gibt 2 Programme. Das 1. basiert auf Access und es werden bestimmte Artikel in einer Tabelle eingetragen. Das 2. Programm ist auf Firebird aufgebaut. Es werden einige Artikel aus Programm 1 in 2 übernommen und gegebenfalls ergänzt. Obwohl sich die Artikel in Programm 1 nicht mehr ändern sollte, passiert es doch mal. Jetzt wäre es hilfreich, wenn man in bestimmten Abständen, eine Überprüfung starten könnte um die beiden Tabellen miteinander zu überprüfen, ob Artikel 1 immer noch die alten Eigenschaften hat.

Möglicherweise werde ich die Tabelle aus Access erst in eine temporäre Firebird-Tabelle kopieren und dann die Überprüfung starten. Dann kann ich immer noch die Tabelle leeren.

Gruß, Luckner
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#20

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 16:42
Access kann von Haus aus andere Datenbanken importieren bzw. verknüpfen. Das richtet man sich einmal ein.

Dann kann man auf alle so verfügbaren Tabellen (egal aus welcher DB sie stammen) per SQL (gemeinsam) zugreifen.

Sinnvoll hielte ich es für Deine Situation:

In Access Verknüpfung zur Firebird-Datenbank aufbauen und Konfiguration speichern. In Access 'ne View einrichten, die die von Dir gewünschte Datenprüfung enthält.

Im Programm dann "nur noch" ein select * from View_zur_Pruefung und "fertig ist die Laube".
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:44 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