ADO Import BLOB Felder

8. Juli 2010 09:01

Hallo zusammen,

wir importieren Daten von einer NAV DB in eine andere über ADO 2.8.
Bei Text,Code,Int,Dec,Date kein Problem.
Um BLOB Felder zu übertragen, benutzen wir den ADOStream.
Sind bei allen Datensätzen die BLOB Felder auch wirklich gefüllt, ist dies kein Problem.
Sobald jedoch in einem Datensatz das BLOB Feld leer ist, kommt es zu folgendem Fehler:

Diese Meldung.......
Der Aufruf zum Member Write ist fehlgeschlagen.ADODB.Stream gab folgende Meldung zurück:
Die Argumente sind vom falschen Typ,liegen außerhalb des Gültigkeitsbereichs oder sind miteinander unvereinbar.


Der Code zum BLOB Ex- und import läuft folgendermaßen ab:
Code:
ADOStream.Type(1);
ADOStream.Open;
ADOStream.WriteText(ADORecSet.Fields.Item(FELDNAME).Value);
ADOStream.SaveToFile(Filename);

rec.BLOB.IMPORT(Filename);


Hat jemand dieses Problem schon mal gelöst?

Gruß
Gollum

Nachtrag:
habe dieses Problem gelöst:
2te RecordSet mitlaufen lassen.
Dann im 2. RS STRLEN des BLOB Feldes prüfen.
Wenn größer 1, dann ist Wert enthalten.

Nun tut sich aber ein neues Problem auf.
Die Methode ganz oben beschrieben funktioniert nur für uncompressed files.
Bei komprimierten BLOB Feldern wird nur Datenmüll exportiert.
Könnt Ihr mir da helfen?