4D v12.4

COMPRESS BLOB

Home

 
4D v12.4
COMPRESS BLOB

 

COMPRESS BLOB 


 

COMPRESS BLOB ( BLOB {; Komprimierung} ) 
Parameter Typ   Beschreibung
BLOB  BLOB in Zu komprimierendes BLOB
Komprimierung  Lange Ganzzahl in Wenn angegeben: 1=komprimiert so kompakt wie möglich, 2=komprimiert so schnell wie möglich

Der Befehl COMPRESS BLOB komprimiert BLOB mit dem internen Komprimierungsalgorithmus von 4D. Dieser Befehl komprimiert nur BLOBs, die größer als 255 Bytes sind.

Mit dem optionalen Parameter Komprimierung legen Sie fest, wie das BLOB komprimiert wird:

  • Übergeben Sie 1, wird das BLOB so kompakt wie möglich komprimiert. Die Komprimierungsgeschwindigkeit sowie die Operationen zum Entkomprimieren werden dabei nicht berücksichtigt.
  • Übergeben Sie 2, wird das BLOB so schnell wie möglich komprimiert bzw. entkomprimiert. Die Komprimierungsrate wird dabei nicht berücksichtigt , d.h das komprimierte BLOB ist größer.
  • Übergeben Sie einen anderen Wert oder geben Sie den Parameter nicht an, wird das BLOB mit dem Modus 1 so weit wie möglich komprimiert.

4D bietet folgende vordefinierten Konstanten:

Konstante Typ Wert Meldung
Compact compression mode Lange Ganzzahl 1 So kompakt wie möglich komprimieren (Standardmodus). Verlangsamt die Komprimierungsgeschwindigkeit und die Operationen zur Entkomprimierung.
Fast compression mode Lange Ganzzahl 2 So schnell wie möglich komprimieren (wird auch schnellstmöglich entkomprimiert), verringert die Komprimierungsrate, d.h. das komprimierte BLOB wird größer.

Nach dem Aufruf hat die OK Variable den Wert 1, wenn das BLOB erfolgreich komprimiert wurde. Andernfalls hat die OK Variable den Wert 0. Dann gibt es zwei Möglichkeiten:
1- Der Fehler ist unwichtig (Speicherproblem, Blobgröße). Es wird kein Fehler generiert. Die aufrufende Methode wird weiter ausgeführt.
2- Der Fehler ist wichtig, d.h. BLOB ist beschädigt. Der Fehler 10600 wird generiert. Sie können ihn mit dem Befehl ON ERR CALL verwalten.

Mit dem Befehl EXPAND BLOB können Sie ein komprimiertes BLOB entkomprimieren.

Mit dem Befehl BLOB PROPERTIES können Sie feststellen, ob ein BLOB komprimiert ist.

Warnung: Ein komprimiertes BLOB ist weiterhin ein BLOB, Sie können also weiterhin dessen Inhalt verändern. In diesem Fall kann der Befehl EXPAND BLOB das BLOB jedoch nicht korrekt entkomprimieren.

Dieses Beispiel prüft, ob das BLOB vxMyBlob komprimiert ist, und komprimiert es gegebenenfalls:

 BLOB PROPERTIES(vxMyBlob;$vlCompressed;$vlExpandedSize;$vlCurrentSize)
 If($vlCompressed=Is not compressed)
    COMPRESS BLOB(vxMyBlob)
 End if

Wenden Sie den Befehl COMPRESS BLOB auf ein bereits komprimiertes BLOB an, erkennt er das und führt nichts aus.

Dieses Beispiel wählt ein Dokument aus und komprimiert es:

 $vhDocRef :=Open document("")
 If(OK=1)
    CLOSE DOCUMENT($vhDocRef)
    DOCUMENT TO BLOB(Document;vxBlob)
    If(OK=1)
       COMPRESS BLOB(vxBlob)
       If(OK=1)
          BLOB TO DOCUMENT(Document;vxBlob)
       End if
    End if
 End if

Wurde das BLOB erfolgreich komprimiert, hat die OK Variable den Wert 1; andernfalls den Wert 0.

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: BLOB
Nummer: 534

Dieser Befehl ändert die Systemvariable OKDieser Befehl ändert die Systemvariable Error

 
GESCHICHTE 

Geändert: 4D v6.5.3

 
SIEHE AUCH 

BLOB PROPERTIES
EXPAND BLOB

 
SCHLÜSSELWÖRTER 

Compression, blob compression***