EXPAND BLOB
EXPAND BLOB ( blob )
Paramètre | Type | Description | |
---|---|---|---|
blob | Blob | → | BLOB à décompresser |
Description
EXPAND BLOB décompresse le BLOB blob préalablement compressé à l'aide de la commande COMPRESS BLOB.
Après l'appel de la commande, la variable système OK prend la valeur 1 si le BLOB a été correctement décompressé.
Si la décompression n'a pas pu être effectuée, OK prend la valeur 0.
Dans ce cas, si l'erreur provient du fait que la mémoire disponible est insuffisante pour effectuer l'opération, aucune erreur n'est générée et la méthode poursuit son exécution.
En revanche, si l'erreur est causée par un problème plus important (le BLOB n'avait pas été compressé ou le BLOB est endommagé), l'erreur -10600 est générée. Cette erreur peut être interceptée à l'aide d'une méthode installée par la commande ON ERR CALL.
De manière générale, il est préférable d'appeler la commande BLOB PROPERTIES pour savoir si le BLOB a été compressé avant d'exécuter EXPAND BLOB.
Exemple 1
L'exemple suivant teste si le BLOB vxMonBlob est compressé et, si oui, le décompresse :
BLOB PROPERTIES(vxMonBlob;$vlCompressé;$vlTailleDécompressée;$vlTailleCourante)
If($vlCompressé#Is not compressed)
EXPAND BLOB(vxMonBlob)
End if
Exemple 2
L'exemple suivant vous permet de sélectionner un document et puis de le décompresser s'il était compressé :
$vhDocRef :=Open document("")
If(OK=1)
CLOSE DOCUMENT($vhDocRef)
DOCUMENT TO BLOB(Document;vxBlob)
If(OK=1)
BLOB PROPERTIES(vxBlob;$vlCompressé;$vlTailleDécompressée;$vlTailleCourante)
If($vlCompressé#Is not compressed)
EXPAND BLOB(vxBlob)
If(OK=1)
BLOB TO DOCUMENT(Document;vxBlob)
End if
End if
End if
End if
Variables et ensembles système
La variable OK prend la valeur 1 si le BLOB a été correctement décompressé, sinon elle prend la valeur 0.