![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos
Datenexport von Firebird nach Access über ZEOS
Hallo,
ich nutze in meiner Application Firebird 2.1 und die Zeos-Komponenten. Nun bin ich aber gefordert, einige Tabellen aus meiner Application nach ACCESS zu exportieren und komme da nicht wirklich weiter. Idealer Weise würde ich dieses gerne über einen SQL-Befehl veranlassen, allerdings funktioniert dies nicht hier mein Ansatz INSERT INTO neueAccessQuery SELECT * FROM FireBirdQuery Nach Excel habe ich bisher die JEDI´s genutzt, allerdings eine Komponente für ACCESS-Export gibt es nicht. |
AW: Datenexport von Firebird nach Access über ZEOS
Ich kenne mich leider weder mit Zeos noch mit Firebird aus, wenn Du den Umweg über Zeos >Oberfläche/Satzwiese> Ado nicht gehen willst, gibt es vielleicht eine Möglichkeit die Firebird Tabellen in eine Hilfsaccessdatenbank per ODBC einzubinden und dann per ADOCommand in der Art
PseudoCode:
Delphi-Quellcode:
zu übertragen.
insert into ZielDB.Tabelle Select * from HilfsDB.Tabelle
|
AW: Datenexport von Firebird nach Access über ZEOS
Oder auch per ADO auf Firebird zugreifen oder in Delphi die Daten von einem ins andere DataSet schieben
|
AW: Datenexport von Firebird nach Access über ZEOS
Hallo,
ich komme trotzdem nicht weiter. Ich habe die FirebirdDB über Zeos firebirdd-2.1, die Access über Zeos ADO Protokoll angebunden
Code:
Es erscheint die Fehlermeldung, dass FireBirdQuery.mdb nicht gefunden wird. Kann ja auch nicht, da es eine Tabelle aus der FB-Datenbank ist.
FireBirdQuery.Active := True;
conAccess.Connected := True; with zqryAccessDB do begin Active := False; SQL.Clear; SQL.Text := 'INSERT INTO Access_Table from FireBirdQuery'; ExecSQL; end; zqryAccessDB.Active := False; conAccess.Connected := False; Wo ist mein Gedankenfehler ? |
AW: Datenexport von Firebird nach Access über ZEOS
Kann so auch nicht gehen. CrossDatabase-Queries funktionieren nur in ADO.
|
AW: Datenexport von Firebird nach Access über ZEOS
Hallo,
ich habe mein altes Problem noch einmal ausgegraben. Nun habe ich den ODBC-Treiber für Firebird installiert, so dass ich die Acess, und die Firebird beide über ODBC (ZeosQuery / ADO) verbunden habe. Die Verbindungen zu den einzelnen Querys funktionieren, die Daten können in einem Grid sauber dargestellt werden. Nun möchte ich die Daten der FirebirdDB in Access über einen SQL-Befehl importieren.
Code:
Erhalte aber eine OleException
FirebirdQuery.Active := True;
conAccess.Connected := True; with AccessQuery do begin Active := TRUE; SQL.Clear; SQL.Text := 'INSERT INTO ACC_Table (art, name) SELECT art, name from FirebirdQuery'; ExecSQL; end; Obwohl nun beide DAtenbanken über ODBC verbunden sind wird die Firebird beim Import nicht gefunden. Microsoft[ODBC Microsoft Access Driver] Das Microsoft Jet Datenbankmodul findet die Eingangstabelle oder die Abfrage 'FirebirdQuery' nicht. Stellen Sie sicher, dass sie existiert und der Name richtig geschrieben wurde. Ich verstehe nicht, warum diese Exception erscheint. Hat jemenand keine Idee, was hier faklsch sein könnte ? |
AW: Datenexport von Firebird nach Access über ZEOS
Weil du gerade ein Telefonkonferenz mittels 2 Telefonen machst.
Und nun wunderst du dich, dass der an Tel1 nicht versteht was der an Tel2 sagt. Du hörst doch alles, dann müssten die doch auch alles hören. Du musst die Werte schon selber von A nach B durchreichen, denn die Query wird ja direkt auf dem DBMS ausgeführt und dann kannst du auch nur das benutzen was da bekannt ist. Alles dort Unbekannte musst du mitliefern. |
AW: Datenexport von Firebird nach Access über ZEOS
Ich hab auch kein Firebird und kein Zeos, aber ich stelle mir das so vor:
Du nimmst eine Access.mdb (mglw. gleich die Ziel DB), dort kommt per ODBC eine Tabellenverknüpfung zur Firebird Quelltabelle rein. Dann baust Du direkt in Access (mit Hilfe des Assistenten) die Insert Abfrage, nimmst Dir die SQL Anweisung und verwendest die dann in Delphi. In Delphi brauchst Du für diesen Schritt nur eine ADOConnection via Access/ Jet Engine zu der Access DB von oben und eine ADOQuery für das SQL Statement, kein Firebirdzugriff, das soll die Jet Engine machen. Könnte funktionieren. |
AW: Datenexport von Firebird nach Access über ZEOS
Für die BDE gibt es eine Möglichkeit mehrere BDE-Aliases zu definieren und die dann direkt in der SQL anzusprechen. Das Durchreichen der Werte ist damit nicht erforderich. Laut Hilfe gibt es auch sowas für ADO, aber ich finde im Moment kein Beispiel dafür. Die Stichwörter zum Suchen sind "supports heterogeneous queries". Bei mir ist jetzt allerdings "Computer ShutDown".
Grüße in die Runde |
AW: Datenexport von Firebird nach Access über ZEOS
Hi,
ich würde hier wie folgt vorgehen. Die Source auslesen und zeilenweise an deine AccessDB weiterreichen, praktischer weise solltest du auch die Daten prüfen z.B. mit RegExpr und nur die importieren welche richtig sind.
Delphi-Quellcode:
LG
while not fbDataSet1.Eof do
begin try dtsAccess.fieldByName('NAME').asstring:=fbDataset1.FieldByName('NAME').AsString; dtsAccess.Post; fbDataset1.Next; finally end; end; Dirk |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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