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