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 1 von 2  1 2      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#1

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 13:34
Wer bringt welchen Fehler?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Luckner

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

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 13:54
Beim "JvHTButton1Click" kommt: "Syntaxfehler in JOIN-Operation"

Luckner
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 13:56
In der letzten SQL-Anweisung fehlt ja auch der JOIN (T2 ist gar nicht definiert).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Luckner

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

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 14:08
Stimmt. Habe es jetzt geändert, aber mit selben Meldung.
Delphi-Quellcode:
procedure TFrameRohwareLager.JvHTButton1Click(Sender: TObject);
begin
  DatamoduleAuftrag.DataModule2.ADOConnection1.Connected := false;
  DatamoduleAuftrag.DataModule2.ADOConnection1.connectionstring := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source = ' + ADOConnection + ' ; Persist Security Info=False;';
  DatamoduleAuftrag.DataModule2.ADOConnection1.Connected := true;

  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.Active := False;
  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.SQL.Clear;
  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.SQL.Add('select Art-Nr, Format, Numerierung from Artikel T2 INNER JOIN [Material-Stamm] on Artikel.[Mat-Nr] = [Material-Stamm].[Mat-Nr] ORDER BY Artikel.[Mat-Nr]');
  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.Open;

  DatamoduleRohwareLager.DataModule9.IBDatabaseRohwareBewegung.Connected := true;
  DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.Close;
  DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Clear;
  DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('select ROHWARENR, FORMAT, OBERMATERIAL from ROHWARESTAND T1 LEFT JOIN T2 on T1.ROHWARENR = T2.Art-Nr where T1.FORMAT <> T2.Format OR T1.OBERMATERIAL <> T2.Numerierung order by ROHWARENR');
  DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.Open;
end;
  Mit Zitat antworten Zitat
Luckner

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

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 14:13
Hallo Frickler,
Delphi-Quellcode:
  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.Active := False;
  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.SQL.Clear;
  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.SQL.Add('select Art-Nr, Format, Numerierung from Artikel T2 INNER JOIN [Material-Stamm] on Artikel.[Mat-Nr] = [Material-Stamm].[Mat-Nr] ORDER BY Artikel.[Mat-Nr]');
  DatamoduleAuftrag.DataModule2.ADOQueryEtikbase.Open;
funktioniert. Benutze schon für andere Abfragen und greife mit der ADO-Komponnente direkt auf eine ACCESS-Datenbank. Für die JOIN-Anweisung habe ich die eckigen Klammern auch ausgelassen.

Luckner
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.375 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 14:17
Hast du die SQL-Statements schon ohne Delphi geprüft?
Es wäre auch gut zu wissen, welches SQL-Statement den Fehler bringt.

Was mit auffällt:
Code:
select Art-Nr
Das müsste mMn in eckigen Klammern stehen.
Peter
  Mit Zitat antworten Zitat
Delphi.Narium

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

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 14:22
Dazwischen JOIN T2 fehlt der Tabellenname.

Das muss irgendwie so aussehen: JOIN Tabellenname T2

Wenn die Tabellen in beiden Datenbanken den gleichen Namen haben, wird's wohl Join Artikel T2 heißen müssen.

Wahrscheinlich wäre es dann dashier:
Delphi-Quellcode:
DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('select ROHWARENR, FORMAT, OBERMATERIAL');
DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('from ROHWARESTAND T1');
DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('LEFT JOIN Artikel T2');
DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('on T1.ROHWARENR = T2.Art-Nr');
DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('where T1.FORMAT <> T2.Format');
DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('OR T1.OBERMATERIAL <> T2.Numerierung');
DatamoduleRohwareLager.DataModule9.IBDataSetRohwareBestand.SelectSQL.Add('order by ROHWARENR');
  Mit Zitat antworten Zitat
Luckner

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

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 14: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
685 Beiträge
 
Delphi 12 Athens
 
#9

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 14: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
Delphi.Narium

Registriert seit: 27. Nov 2017
2.598 Beiträge
 
Delphi 7 Professional
 
#10

AW: Tabellenfelder 2 versch. Datenbanken vergleichen

  Alt 3. Apr 2018, 14: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
Antwort Antwort
Seite 1 von 2  1 2      


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 00:40 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