COMPRESS BLOB

4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 6.5.3 (Modificado)


COMPRESS BLOB (BLOB{; compresion})

ParámetroTipoDescripción
BLOBBLOBBLOB a comprimir
compresionNuméricoSi no se omite:
1, compresión máxima posible
2, velocidad de compresión máxima

Descripción

El comando COMPRESS BLOB comprime el BLOB blob utilizando el algoritmo de compresión interno de 4D. Este comando sólo comprime BLOBs cuyo tamaño sea mayor a 255 bytes.

El parámetro opcional compresion le permite definir la forma en que la que el BLOB se comprimirá:

Si pasa 1, el BLOB se comprime tanto como sea posible, en detrimento de la velocidad de las operaciones de compresión y descompresión.

Si pasa 2, el BLOB se comprimte tan rápido como sea posible (y se descomprimirá tan rápido como sea posible), en detrimento de la tasa de compresión (el BLOB comprimido será más grande).

Si pasa otro valor o si omite el parámetro, el BLOB se comprime tanto como sea posible, utilizando el modo de compresión 1.

4D ofrece las siguiente constantes predefinidas:

ConstanteTipoValor
Compact compression modeEntero largo1
Fast compression modeEntero largo2

Después de llamar este comando, la variable OK toma el valor 1 si el BLOB fue comprimido correctamente. Si la compresión no se pudo realizar, la variable OK toma el valor 0. Si la compresión no se pudo efectuar por falta de memoria o porque el tamaño actual del blob es menor de 255 bytes, no se genera un error, y el método continua su ejecución.

En otros casos (el BLOB está dañado), se genera el error -10600. Este error, puede ser interceptado con la ayuda del comando ON ERR CALL.

Después de comprimir un BLOB, puede expandirlo utilizando el comando EXPAND BLOB.

Para detectar si un BLOB ha sido comprimido, utilice el comando BLOB PROPERTIES.

Advertencia: un BLOB comprimido continua siendo un BLOB, de manera que no hay nada que le impida modificar su contenido. Sin embargo, si lo modifica, el comando EXPAND BLOB no podrá descomprimir el BLOB correctamente.

Ejemplos

1. Este ejemplo prueba si el BLOB vxMiBlob está comprimido, y si no lo está, lo comprime:

   BLOB PROPERTIES (
vxMiBlob
;$vlComprimido;$vlTamañoExpandido;$vlTamañoActual)
   If ($vlComprimido=Is not compressed)
      COMPRESS BLOB (vxMiBlob)
   End if

Sin embargo observe, que si aplica COMPRESS BLOB a un BLOB que ya ha sido comprimido, el comando lo detecta y no hace nada.


2. Este ejemplo le permite seleccionar un documento y luego comprimirlo:

   $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

Ver también

BLOB PROPERTIES, EXPAND BLOB.

Variables o conjuntos sistema

La variable OK toma el valor 1 si el BLOB se comprime correctamente; de lo contrario, toma el valor 0.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente