Einzelnen Beitrag anzeigen

kretabiker

Registriert seit: 10. Mär 2005
Ort: Bargteheide
183 Beiträge
 
Delphi 12 Athens
 
#1

Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpacken

  Alt 16. Dez 2011, 15:14
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
Udo Treichel
  Mit Zitat antworten Zitat