4D v16.3

COMPRESS BLOB

Home

 
4D v16.3
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. 4D bietet dafür folgende vordefinierten Konstanten:

Konstante Typ Wert Kommentar
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.
GZIP best compression mode Lange Ganzzahl -1 Kompakteste GZIP Komprimierung
GZIP fast compression mode Lange Ganzzahl -2 Schnellste GZIP Komprimierung

Übergeben Sie einen anderen Wert oder lassen Sie den Parameter Komprimierung weg, wird der Komprimierungsmodus 1 verwendet (kompakteste interne Komprimierung).

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. Beachten Sie jedoch, dass der Befehl EXPAND BLOB das BLOB dann nicht korrekt entkomprimieren kann.

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

HTTP Rohdaten senden, komprimiert mit GZIP:

 COMPRESS BLOB($blob;GZIP Best compression mode)
 C_TEXT($vEncoding)
 $vEncoding:="Content-encoding: gzip"
 WEB SET HTTP HEADER($vEncoding)
 WEB SEND RAW DATA($blob ;*)

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



Siehe auch 

BLOB PROPERTIES
EXPAND BLOB

 
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
Geändert: 4D v13

 
SCHLÜSSELWÖRTER 

Compression, blob compression

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)