Saltar al contenido principal
Versión: 20 R7 BETA

BLOB PROPERTIES

BLOB PROPERTIES ( BLOB ; comprimido {; descompTam {; tamañoActual}} )

ParámetroTipoDescripción
BlobBlobBLOB del cual obtener información
comprimidoInteger0 = BLOB no está comprimido 1 = BLOB comprimido modo compacto 2 = BLOB comprimido modo rápido
descompTamIntegerTamaño del BLOB (en bytes) cuando no está comprimido
tamañoActualIntegerTamaño actual del BLOB (en bytes)

Descripción

El comando BLOB PROPERTIES devuelve información sobre el BLOB blob.

El parámetro comprimido devuelve un valor indicando si el BLOB está comprimido. Puede comparar este valor con las siguientes constantes, ubicadas en el tema BLOB :

ConstanteTipoValorComentario
Compact compression modeEntero largo1Compresión interna más compacta (en detrimento de la velocidad a la cual la compresión y descompresión se efectúan). Método por defecto.
Fast compression modeEntero largo2Compresión más rápida en detrimento (y será descomprimido lo más rápido posible), en detrimento de la tasa de compresión (una vez comprimido, el BLOB será más grande).
GZIP best compression modeEntero largo-1Compresión GZIP más compacta (en detrimento de la velocidad a la cual la compresión y decompresión se efectúan).
GZIP fast compression modeEntero largo-2Compresión/descompresión GZIP más rápida (en detrimento de la tasa de compresión).
Is not compressedEntero largo0Sin compresión

Cualquiera que sea el estado de compresión del BLOB, el parámetro descompTam devuelve el tamaño del BLOB cuando no está comprimido.
El parámetro tamañoActual devuelve el tamaño actual del BLOB. Si el BLOB está comprimido, tamañoActual será menor que descompTam. Si el BLOB no está comprimido, tamañoActual será igual a descompTam.

Ejemplo 1

Vea los ejemplos de los comandos COMPRESS BLOB y EXPAND BLOB.

Ejemplo 2

Después de que un BLOB ha sido comprimido, el siguiente método de proyecto obtiene el porcentaje de espacio ahorrado por la compresión:

  // Método de proyecto Espacio ahorrado por compresión
  // Espacio ahorrado por la compresión (Puntero {; Puntero } ) -> Entero Largo
  // Espacio ahorrado por la compresión ( -> BLOB {; -> bytesAhorrados } ) -> Porcentaje
 
 var $1;$2 : Pointer
 var $0;$vlComprimido;$vlDescompTam;$vlTamañoActual : Integer
 
 BLOB PROPERTIES($1->;$vlComprimido;$vlDescompTam;$vlTamañoActual)
 If($vlDescompTam=0)
    $0:=0
    If(Count parameters>=2)
       $2->:=0
    End if
 Else
    $0:=100-(($vlTamañoActual/$vlDescompTam)*100)
    If(Count parameters>=2)
       $2->:=$vlDescompTam-$vlTamañoActual
    End if
 End if

Después de añadir este método a su aplicación, lo puede utilizar de esta manera:

  // ...
 COMPRESS BLOB(vxBlob)
 $vlPorcentaje:=Espacio ahorrado por compresión(->vxBlob;->vlTamañoBlob)
 ALERT("La compresión ahorró "+String(vlBlobSize)+" bytes, "+String($vlPorcentaje;"#0%")+
 " de espacio.")

Ver también

COMPRESS BLOB
EXPAND BLOB