![]() |
Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpacken
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:
An der markierten Stelle kracht es dann mit der Fehlermeldung "Unknown error in List()funktion. Stream Lesefehler"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); (...) 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 |
AW: Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpa
Ich würde erstmal probieren unter D2007 ZipMaster 1.9 zu verwenden und zu sehen was hier passiert.
|
AW: Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpa
Delphi-Quellcode:
UnpackedTitle := zmDocs.ExtractStreamToStream(PackedTitel, 65535); // hier kracht es dann
müsste es nicht PackedTitle statt PackedTitel heissen? |
AW: Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpa
@Bernhard: Das ist eine Idee, auf die ich auch hätte selber kommen können. Geh ich gleich mal dran...
@Nachteule: So isses, heißt natürlich PackedTitle - Tippfehler beim Übertragen und munteren Umformatieren für das Forum. DAS ist nicht das Fehlerproblem... |
AW: Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpa
Soderle,
hab mir jetzt mal schnell ein Testprojekt unter D2007 zusammengebaut, und zwar für ZM1.79 und ZM1.9 sowohl für IBDAC als auch IBX. Ergebnis: - ZM 1.79: Sowohl bei IBX als auch IBDAC funktioniert das Auslesen des Tabellenfeldes und das Entzippen einwandfrei. - ZM 1.90: Sowohl bei IBX als auch IBDAC tritt der genannte Fehler beim Entpacken auf. Was tun, sprach Zeus? Jetzt muss ich mal ein bisserl in den Sourcen von ZM herumdebuggen, was ZM1.79 bei Entpacken des Streams anders macht als ZM1.90. Oder hat noch jemand eine andere Idee? Udo |
AW: Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpa
Hallo allerseits,
um dieses Thema zum Abschluss zu bringen: Nach einigem Suchen, Testen und der Kontaktaufname mit Russel Peters, einem der Maintainer für ZipMaster, hat sich herausgestellt, dass es tatsächlich ein Problem mit dem Auslesen von mit ZipMaster 179 erzeugten Archiven in ZipMaster 190 gibt bzw. gab; der Fehler lag in der DLL und trat nur auf, wenn sehr kurze Texte mit ZM179 gepackt wurden. Russel hat mir heute eine neue DLL geschickt, die in meinen Tests funktioniert hat. Sicherlich wird er in bälde auch eine neue Version zum Download zur Verfügung stellen. Viele Grüße Udo "Kretabiker" Treichel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz