Hallo,
ich stelle gerade eine unserer Applikationen um von D2007 auf DXE. Eigentlich bin ich durch, aber beim Testen stoße ich nun an einer Stelle auf ein Problem...
In einer Firebird-Datenbanktabelle liegen längere Texte in einem BLOB-Field zip-komprimiert. Die Zips wurde mit ZipMaster 1.79 erzeugt; bis D2007 gab es auch keine Probleme beim Auslesen und Entpacken.
Unter DXE habe ich nun die Zipmaster-Version 1.90 installiert, da es nur die für DXE zu geben scheint. Jetzt habe ich das Problem, das beim Entpacken des Feldinhaltes Fehlermeldungen auftreten - irgendwas hat sich da anscheinend geändert und ich kapiere nicht, was.
Folgenden (stark vereinfachten) Code verwende ich:
Delphi-Quellcode:
var
UnpackedStr: TStringList;
PackedTitle := TMemoryStream;
UnpackedTitle: TMemoryStream;
begin
(...)
UnpackedStr := TStringList.Create;
PackedTitle := TMemoryStream.Create;
qryDokumenteTitel.SaveToStream(PackedTitle);
// Alternativ probiert: TBlobStream(qryDokument.FieldByName('Titel').SaveToStream(PackedTitle);
UnpackedTitle := zmDocs.ExtractStreamToStream(PackedTitel, 65535); // hier kracht es dann
UnpackedStr.LoadFromStream(UnpackedTitle);
(...)
An der markierten Stelle kracht es dann mit der Fehlermeldung "Unknown error in List()funktion. Stream Lesefehler"
Entweder mache ich etwas komplett falsch, oder es hat sich was geändert, oder es gibt Inkompatibiltäten zwischen Zipmaster 1.79 und 1.90, oder...
Datenbank ist Firebird 2.0.6 (
Win32), das fragliche Tabellenfeld ist als BLOB mit sub_type 0 definiert. Zugriff über IBDAC.
Hat jemand ne Idee/ähnliche Erfahrungen?
Viele Grüße
Udo "Kretabiker" Treichel