AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Problem: Mit Zipmaster 1.7 gepacktes (Blob-)Datenbankfeld mit ZipMaster 1.9 entpacken
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von kretabiker · begonnen am 16. Dez 2011 · letzter Beitrag vom 20. Dez 2011
Antwort Antwort
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
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

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

  Alt 16. Dez 2011, 15:39
Ich würde erstmal probieren unter D2007 ZipMaster 1.9 zu verwenden und zu sehen was hier passiert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Nachteule

Registriert seit: 22. Mär 2007
Ort: München
37 Beiträge
 
Delphi 2009 Enterprise
 
#3

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

  Alt 16. Dez 2011, 15:50
 UnpackedTitle := zmDocs.ExtractStreamToStream(PackedTitel, 65535); // hier kracht es dann
müsste es nicht PackedTitle statt PackedTitel heissen?
  Mit Zitat antworten Zitat
kretabiker

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

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

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

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

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

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

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

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

  Alt 20. Dez 2011, 09:39
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
Udo Treichel
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz