4D v16

BLOBs

Inicio

 
4D v16
BLOBs

BLOBs    


 

 

Además de las manipulaciones explicadas en el vídeo, también debe tener en cuenta lo siguiente:

Al comenzar, siempre hacemos las mismas preguntas:

  • ¿Cómo me puede servir y en qué circunstancias?
  • Poner la información es muy fácil, pero ¿Cómo y en qué orden saldrán?

Vamos a comenzar por abordar la segunda pregunta:

A pesar de que se puede acceder a cualquier byte del BLOB, en la mayoría de los casos vamos a utilizar lo que llamamos FIFO (First In First Out). Esto significa que usted recupera el contenido del BLOB en el orden en que lo puso en él.
Para hacer una analogía simple, vamos a tomar una estantería donde se guardan los libros de izquierda a derecha. Usted comienza por poner un libro pequeño a la izquierda y luego un gran libro al lado del primero y luego otro gran libro y luego una foto de su suegra y una chuchería de sus últimas vacaciones, etc. Cuando llegue el momento de desempolvar la estantería, usted no piensa en cuántas pulgadas del lado izquierdo se encuentra un libro. Los toma en el orden en que están y ajusta su mirada (y manos), dependiendo del tamaño del último objeto elegido.

Es lo mismo en un BLOB, sobre todo porque usted sabe lo que guardó en el BLOB.

Por ejemplo, cuando pone:

  • un entero, es de 2 bytes
  • un entero largo es de 4 bytes
  • mientras que una fecha es de 6 bytes
  • ...
  • Para el texto, se indica cómo quiere que se guarde y cómo se expresa la longitud del texto (cadena C, cadena Pascal, etc.).

Al volver a leer, usted tomará la información en el mismo orden nuevamente y la guardará en las variables que se adaptan al contenido esperado (digitado correctamente).

De esta forma el BLOB se lee de una manera consistente.
Aquí está la respuesta a la primera pregunta (¿Cuál es el propósito de un BLOB?) Puede utilizar un BLOB, por ejemplo, en los siguientes casos:

  • Para guardar variables, listas jerárquicas, arrays
  • Para el intercambio de documentos entre el cliente y el servidor
  • Para proteger datos confidenciales en un BLOB encriptado
  • Para guardar las variables que contienen plug-ins
  • Para enviar imágenes, textos o documentos en un navegador web
  • Para comunicarse con un servicio web.

El comando VARIABLE TO BLOB guarda los datos en un formato interno 4D. Es por eso que el espacio requerido es ligeramente mayor que el tamaño bruto de los datos.La ventaja de este comando es que evita tener que gestionar el Byte Swapping (posición del byte más significativo) cuando se trabaja en varias plataformas.

Cuando llena un BLOB, puede utilizar el carácter * en lugar de la variable $PositionInBlob variable que utilizamos.

Cuando se utiliza este parámetro, 4D entiende que debe almacenar la variable al final del BLOB y aumentar su tamaño como resultado.

Ahora imaginemos que usted tiene una serie de parámetros en su base de datos que deben tenerse en cuenta para cada usuario (o cada sitio donde está instalada la aplicación):

  • la pantalla de inicio
  • el color de fondo
  • la fuente y el tamaño de los caracteres
  • y así sucesivamente.
    Ellos son las preferencias del usuario.

Para conservalos, hay varias soluciones (crear una tabla, un archivo texto, un archivo XML, etc.).

En nuestro caso, vamos a conservar estas preferencias en un BLOB, que se guarda en un archivo en el disco.

Los comandos de escritura y de lectura de los BLOBs son BLOB TO DOCUMENT y DOCUMENT TO BLOB.

Para ahorrar  espacio y/o tiempo de transferencia, es posible que desee considerar la posibilidad de comprimir sus BLOBs.

Recuerde que 4D sólo comprime BLOBs si su tamaño es superior a 255 bytes.

Al descomprimir BLOBs, recuerde revisar para ver si el BLOB se comprime realidad. De lo contrario, tratar de descomprimirlo generará un error.

En este vídeo, vamos a aprender a programar BLOBs y ver cómo interactúan con las variables.

Los BLOBs permiten almacenar y recuperar todo tipo de información.

Usemos un ejemplo simple de almacenamiento de variables. En primer lugar vamos a crear un método y luego vamos a:

  • asignar valores a tres variables de entrada a y tres variables de salida
  • inicializar el BLOB y la posición de lectura en el BLOB
  • asignar valores a las variables
  • y transferir estas variables al BLOB.

El principio es:

  • utilizar el comandos VARIABLE TO BLOB 
  • indicar la variable a procesar
  • el BLOB en el que desea guardarla
  • y la posición en la que desea almacenar la variable en el BLOB.

La variable PositionInBlob funciona a la vez como de entrada y de salida, es decir:

  • indica el lugar donde desea guardar la variable de antemano
  • y después de que el comando se haya ejecutado, esta variable contiene la posición en el BLOB justo después de la variable de modo que usted pueda guardar los siguientes elementos.
  • Una vez los datos se almacenan en el BLOB, podemos hacer una serie de procesamientos y luego extraer los datos del BLOB escribiendo:
    Redefinimos el punto de partida en el BLOB en la posición 0
    Vamos a extraer del BLOB la primera variable introducida
  • Luego la segunda y la tercera
  • Normalmente, cuando terminamos de usar un BLOB, lo borramos definiendo su tamaño en 0.

Vamos a seguir este método para ver cómo se llena el BLOB y cómo se restauran las variables.

En este punto:

  • Todas las inicializaciones se han hecho
  • El BLOB está vacío
  • Cuando pasamos a la primera línea, el BLOB contiene un cierto número de bytes
  • Y poco a poco se llena.

Para extraer los datos del BLOB:

  • Volvemos a la posición 0 en el BLOB
  • A continuación, extraemos el valor entero
  • La fecha
  • Y el texto que estaba guardado
  • Luego vaciamos el BLOB.

Este sencillo ejemplo nos ayuda a comprender la entrada y la salida de datos en un BLOB.

Podemos guardar los resultados de los arrays estadísticos en un BLOB, para que podamos usarlos de nuevo más tarde.
Así que haremos lo siguiente:

  • Crear un botón de BLOB
    (por lo general debe ponerlo en el archivo XLIFF)
  • Y en este botón, vamos a crear un BLOB
  • Y transferir los 2 arrays.

Más tarde, cuando queramos recuperar el contenido de los arrays, deberemos programar de esta forma:

  • Inicialización de un primer array
  • Luego el otro
  • Definir la posición en el BLOB
  • Recuperación de los dos arrays a partir del BLOB.

Durante la ejecución:

  • Nuestros arrays contienen cada uno 7 elementos,
  • El BLOB está vacío
  • Cargamos el BLOB con la información de los arrays.

Luego cuando queremos recuperar el contenido del BLOB más adelante:

  • Comenzamos con 2 arrays vacíos
  • Vamos al comienzo del BLOB
  • Luego recargamos los arrays (Technicians e Interventions)

 
 

 
PROPIEDADES 

Producto: 4D
Tema: BLOBs

 
HISTORIA 

 
ARTICLE USAGE

Autoformación ( 4D v16)