Einzelnen Beitrag anzeigen

Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
646 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Firebird: Dump eines einzelnen Datensatzes

  Alt 3. Aug 2010, 20:45
Warum in die Ferne schweifen, wenn eine Firebird-Datenbank doch auch nichts anderes ist als eine Datei?

Erstelle doch beim Export einfach per Script eine zweite lokale Datenbank als "Austausch-Format" und kopiere den Datensatz bzw. den relevanten Teil davon in die kleine, neu erstellte Datenbank rüber. (SELECT von Datenbank 1 => Cursor => INSERT in Datenbank 2)
Diese Mini-Datenbank dann noch optional vom Programm packen / zippen lassen und fertig ist dein kompatibles Austausch-Format.
Auf der Gegenseite machst du das Ganze umgekehrt

Wenn du binäre Daten in der Datenbank hast, könntest du die Blob-Streams auch gleich vor dem INSERT packen (z.B. mit BZIP2 geht das wunderbar), dann brauchst du die Datenbank selbst nicht mehr zippen (obwohl das sicher besser ist, da sich die Datenbank-Struktur meist auch noch recht gut packen lässt).
Idee ist eigentlich ganz gut, aber der overhead ist immens, weil du in der Datenbank immer alle Metadaten und Systemtabellen schon drin hast. Daher ist eine leere Firebird DB auch ohne jede eigene Tabelle je nach Pagesize 0,5-2 MB groß. Aus den Daten den realen Insert zu erzeugen, den du auf der Gegenseite wieder direkt nutzen kannst, ist aus meienr Sicht die flexibelste Version und hat sicherlich weniger Overheade als ytpische XML Strukturen, weil bei denen jeder Feldname Tag meist doppelt auftaucht. Die Behandlung von Blobs ist ein anderes Thema, aber vielelicht lässt du dich ja von dem Verfahren inspirieren, wie wir das in ibexpert auch mit blobs machen
http://www.ibexpert.net/ibe/index.ph...ve#SetBlobfile

Gruß
Holger
www.ibexpert.com
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat