![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Zeos
Feldupdate über 2 Datenbanken
Hallo,
ich möchte mit einem SQL Update ein Feld "Preis" in meiner Artikeltabelle mit den kalkulierten Preisen aus einer Exceltabelle updaten. Ich habe jeweils eine Connection (Firebird über fbclient und die Excel über Zeos ADO) verbunden. In beiden Tabellen ist das Verknüpfungsfeld die ArtikelNr. Wie muss mein SQL Updatebefehl Datenbankübergreifend aussehen um die Preise zu übernehmen ? Geht dies überhaupt über einen direkt Updatebefehl oder muss ich mir den Preis je Datensatz aus der der Excel holen, und in der Firebirdtabelle korrigieren ? |
AW: Feldabdate über 2 Datenbanken
Meinst Du wirklich Datenbanken oder eher Tabellen?
|
AW: Feldupdate über 2 Datenbanken
Die Inhalte stehen in den Tabellen, allerdings einmal in Firebird, und die zweite in Excel.
Aktuell sieht mein SQL wie folg aus, aber die Daten werden nicht übertargen. Artikel ist die Tabelle in der Firebirddatenbank Basisdaten ist die Tabelle in der Exceltabelle, con1 meine ADO Connection auf die Exceltabelle
Delphi-Quellcode:
update artikel a
set a.ARTIKEL_PREIS = (select b.NeuVK_Preis from Con1.[Basisdaten$] b where a.ARTIKELNR= b.ARTIKELNR) |
AW: Feldupdate über 2 Datenbanken
Moin...8-)
Zitat:
Dafür baut man sich eine Zwischenschicht die beide DB (Excel als DB zu bezeichnen ist...Jehova :zwinker:) kennt und der das Programm die Befehle erteilt. (z.B. Übertrage die Daten der ID 42) |
AW: Feldupdate über 2 Datenbanken
Hallo,
danke, ich hatte es befürchtet. Gut, dann gehe ich den Umweg über Querys und skipe die Datensätze durch. @Gut Excel ist keine DB, wäre besser gewesen 2 unterschiedliche Datenquellen. |
AW: Feldupdate über 2 Datenbanken
Also mein erster Ansatz wäre in der FireBird-DB eine Tabelle anzulegen, die mit der Exceltabelle übereinstimmt.
Diese Tabelle in der FireBird-DB ist normalerweise leer. Dann wird ein Import gestartet, mit dem diese Tabelle mit den Exceldaten befüllt wird. Anschließend kann das Update per SQL erfolgen und zum Schluss wird die Tabelle mit den Exceldaten wieder geleert. Für die Datenübernahme aus Excel gäbe es mehrere Möglichkeiten. Einmal per while not eof über die Tabelle laufen und jeweils die Daten feldweise in die FireBird-Tabelle kopieren. Alternative wäre z. B.: Wiederum while not EoF über die Exceltabelle und pro Datenzeile ein Insertstatement erstellen und dann die Insertstatement am Ende per "Block" in die FireBird-Tabelle "jagen". |
AW: Feldupdate über 2 Datenbanken
Hat nicht irgendein MS OLEDB Treiber so eine Möglichkeit, heterogene Datenquellen einzubinden? Das geht doch sogar direkt im SQL, also die Angabe der fremden Datenquelle.
Weiß leider grad nicht, was das war und wie es mit FB zusammengeht. War es der MSSQL Treiber selbst? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 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 by Thomas Breitkreuz