4D v16.3

Comandos BLOB

Inicio

 
4D v16.3
Comandos BLOB

Comandos BLOB  


 

4D soporta datos de tipo BLOB (Binary Large OBjects).

Puede definir campos y variables de tipo BLOB y arrays de tipo BLOB:

  • Para crear un campo de tipo BLOB, seleccione BLOB en la lista desplegable Tipo de campo en la ventana Propiedades del campo.
  • Para crear una variable de tipo BLOB, utilice el comando de declaración de compilación C_BLOB. Puede crear variables BLOB locales, proceso e interproceso.
  • Para crear un array de tipo BLOB, utilice el comando ARRAY BLOB.

En 4D, un BLOB es una serie contigua de bytes de longitud variable, que puede ser tratada como un solo objeto o cuyos bytes pueden ser direccionados individualmente. Un BLOB puede estar vacío (longitud nula) o puede contener hasta 2147483647 bytes (2 GB).

Un BLOB se carga en su totalidad en memoria. Una variable o array de tipo BLOB se mantiene y existe únicamente en memoria. Un campo de tipo BLOB se carga en memoria desde el disco, como el resto del registro al cual pertenece.

Al igual que otro tipo de campos que pueden retener gran cantidad de datos (campos de tipo Imagen), los campos BLOB no se duplican en memoria cuando usted modifica un registro. Por lo tanto, el resultado devuelto por los comandos Old y Modified no es significativo cuando se aplica a un campo BLOB.

Un BLOB puede contener todo tipo de datos, por lo tanto no tiene una representación en pantalla por defecto. Si usted visualiza un campo o una variable de tipo BLOB en un formulario, siempre aparecerá vacío, sin importar su contenido.

Puede utilizar campos de tipo BLOB para guardar todo tipo de datos, hasta 2 GB. No es posible indexar un campo BLOB, por lo tanto debe utilizar una fórmula para buscar registros en valores almacenados en un campo tipo BLOB.

Los BLOBs en 4D pueden pasarse como parámetros a comandos 4D o a rutinas de plug-ins que esperan un parámetro de tipo BLOB. Los BLOBs también pueden pasarse como parámetros a métodos de usuario o ser devueltos como resultado de una función.

Para pasar un BLOB a sus métodos, puede también definir un puntero hacia el BLOB y pasar el puntero como parámetro.

Ejemplos:

  ` Declarar una variable de tipo BLOB
 C_BLOB(unBlobVar)
  ` El BLOB se pasa como parámetro a un comando 4D
 SET BLOB SIZE(unBlobVar;1024*1024)
  ` El BLOB se pasa como parámetro a una rutina externa
 $errCode:=Hacer Algo Con Este BLOB(unBlobVar)
  ` El BLOB se pasa como parámetro a un método que devuelve un BLOB
 C_BLOB(traerBlob)
 traerBlob:=Llenar_Blob(unBlobVar)
  ` Un puntero al BLOB se pasa como parámetro a un método de usuario
 CALCULAR BLOB(->unBlobVar)

Nota para los desarrolladores de plug-ins 4D: un parámetro de tipo BLOB se declara como “&O” (la letra “O”, no el número “0”).

Puede asignar BLOBs a otros BLOBs.

Ejemplo:

  ` Declarar dos variables de tipo BLOB
 C_BLOB(vBlobA;vBlobB)
  ` Definir el tamaño del primer BLOB en 10K
 SET BLOB SIZE(vBlobA;10*1024)
  ` Asignar el primer BLOB al segundo
 vBlobB:=vBlobA

Sin embargo, no se puede aplicar un operador a los BLOBs; no existe una expresión de tipo BLOB.

Cada byte de un BLOB puede ser direccionado individualmente utilizando llaves {...}. En un BLOB, los bytes se numeran de 0 a N-1, donde N es el tamaño del BLOB. Ejemplo:

  ` Declarar una variable de tipo BLOB
 C_BLOB(vBlob)
  ` Fijar el tamaño del BLOB en 256 bytes
 SET BLOB SIZE(vBlob;256)
  ` El bucle siguiente inicializa los 256 bytes del BLOB en cero
 For(vByte;0;BLOB size(vBlob)-1)
    vBlob{vByte}:=0
 End for

Como es posible direccionar individualmente todos los bytes de un BLOB, usted puede literalmente almacenar todo lo que quiera en un campo o variable tipo BLOB.

4D ofrece los siguientes comandos para trabajar con BLOBS:

Estos comandos se describen en este capítulo.

Adicionalmente:



Ver también 

APPEND DATA TO PASTEBOARD
BLOB TO PICTURE
BLOB TO USERS
C_BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
GET PASTEBOARD DATA
GET RESOURCE
PICTURE TO BLOB
PICTURE TO GIF
USERS TO BLOB
WEB SEND BLOB

 
PROPIEDADES 

Producto: 4D
Tema: BLOB

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)