TEXT TO 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 11 (Modificado)


TEXT TO BLOB (texto; blob; formatoTexto{; offset | *})

ParámetroTipoDescripción
textoCadenaTexto a escribir en el BLOB
blobBLOBBLOB a recibir el texto
formatoTextoNuméricoFormato y conjunto de caracteres de texto
offset | *Variable | *Offset en el BLOB (expresado en bytes)
o * para añadir el valor
Nuevo offset después de la escritura si se omite *

Descripción

El comando TEXT TO BLOB escribe el valor de tipo Texto texto en el BLOB blob.

El parámetro formatoTexto define el formato interno y el conjunto de caracteres del valor de tipo Texto a escribir. En las bases de datos creadas a partir de la versión 11, 4D utiliza por defecto el conjunto de caracteres Unicode (UTF8) para la gestión de textos. Por compatibilidad, este comando permite "forzar" la conversión utilizando el conjunto de caracteres Mac Roman (utilizado en versiones anteriores de 4D). El conjunto de caracteres se elije vía el parámetro formatoTexto. Para hacer esto, pase una de las siguientes constantes (encontradas en el tema "BLOB") en el parámetro formatoTexto:

ConstanteTipoValor
Mac C stringEntero largo0
Mac Pascal stringEntero largo1
Mac Text with lengthEntero largo2
Mac Text without lengthEntero largo3
UTF8 C stringEntero largo4
UTF8 Text with lengthEntero largo5
UTF8 Text without lengthEntero largo6

Notes:

Las constantes "UTF8" sólo pueden utilizarse cuando la aplicación funciona en modo Unicode.

La constante Mac Text with length no funciona con textos de más de 32 KB.

Si quiere trabajar con conjuntos de caracteres diferentes de UTF8, utilice el comando CONVERT FROM TEXT.

La siguiente tabla describe cada uno de estos formatos:

Formato textoDescripción y ejemplos
C string El texto termina en un carácter NULL (código ASCII $00).
UTF8"" $00
"Café" $43 61 66 C3 A9 00
Mac"" $00
"Café" $43 61 66 8E 00
Pascal stringEl texto está precedido de un byte de longitud.
UTF8-
-
Mac"" $00
"Café" $04 43 61 66 8E
Text with lengthEl texto está precedido por 4 bytes (UTF8) o 2 bytes (Mac) de longitud.
UTF8"" $00 00 00 00
"Café" $00 00 00 05 43 61 66 C3 A9
Mac"" $00 00
"Café" $00 04 43 61 66 8E
Text without lengthEl texto está compuesto únicamente por sus caracteres.
UTF8"" Sin datos
"Café" $43 61 66 C3 A9
Mac"" Sin datos
"Café" $43 61 66 8E

Si especifica el parámetro opcional *, el valor de tipo Texto se añade al BLOB; el tamaño del BLOB se extiende en consecuencia. Utilizando el parámetro opcional *, puede almacenar secuencialmente cualquier número de valores de tipo Entero, Entero largo, Real o Texto (ver otros comandos BLOB) en un BLOB, siempre y cuando haya memoria disponible.

Si no especifica el parámetro opcional * ni la variable del parámetro offset, el valor de tipo texto se almacena al comienzo del BLOB, reemplazando su contenido anterior; el tamaño del BLOB se ajusta en consecuencia.

Si pasa la variable en el parámetro offset, el valor de tipo Texto se escribe en el offset (a partir de cero) en el BLOB. Sin importar donde escriba el valor tipo Texto, el tamaño del BLOB aumenta de acuerdo a la ubicación pasada (más hasta el tamaño del texto, si es necesario). Los bytes redefinidos, diferentes de los que está escribiendo, se inicializan en cero.

Después de llamar el comando, la variable del parámetro offset se incrementa en el número de bytes que haya sido escrito. Por lo tanto, usted puede reutilizar la misma variable con otro comando de escritura de BLOB para escribir otro valor.

Ejemplo

Después de la ejecución este código:

   SET BLOB SIZE (vxBlob;0)
   C_TEXT (vtValor)
   vtValor := "Café"  ` La longitud de vtValor es 4 bytes
   TEXT TO BLOB (vtValor;vxBlob;Mac C string)  ` El tamaño del BLOB se vuelve 5 bytes
   TEXT TO BLOB (vtValor;vxBlob;Mac Pascal string)  ` El tamaño del BLOB se vuelve 5 bytes
   TEXT TO BLOB (vtValor;vxBlob;Mac Text with length)  ` El tamaño del BLOB se vuelve 6 bytes
   TEXT TO BLOB (vtValor;vxBlob;Mac Text without length)  ` El tamaño del BLOB se vuelve 4 bytes
          TEXT TO BLOB (vtValor;vxBlob;UTF8 C string)  ` El tamaño del BLOB se vuelve  6 bytes
      TEXT TO BLOB (vtValor;vxBlob;UTF8 Text with length)  ` El tamaño del BLOB se vuelve 9 bytes
         TEXT TO BLOB (vtValor;vxBlob;UTF8 Text without length)  ` El tamaño del BLOB se vuelve 5 bytes

Ver también

BLOB to integer, BLOB to longint, BLOB to real, BLOB to text, CONVERT FROM TEXT, INTEGER TO BLOB, LONGINT TO BLOB, REAL TO 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