Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
TEXT TO BLOB
|
TEXT TO BLOB ( texto ; BLOB {; textFormat {; offset | *}} ) | ||||||||
Parâmetro | Tipo | Descrição | ||||||
texto | String |
![]() |
Texto a escrever no BLOB | |||||
BLOB | BLOB |
![]() |
BLOB a receber o texto | |||||
textFormat | Inteiro longo |
![]() |
Formato e conjunto de caracteres de texto | |||||
offset | * | Variável, Operador |
![]() |
Offset no BLOB (expressado em bytes) ou * para adicionar o valor | |||||
![]() |
Novo offset depois da escritura se * for omitido | |||||||
O comando TEXT TO BLOB escreve o texto no BLOB blob.
O parâmetro textFormat pode ser usado para definir o formato interno, o conjunto de caracteres o valor texto a ser escrito. Para fazer isso, passe uma das seguintes constantes (encontrado no tema BLOB) no parâmetro textFormat:
Constante
Tipo
Valor
Mac C string
Inteiro longo
0
Mac Pascal string
Inteiro longo
1
Mac text with length
Inteiro longo
2
Mac text without length
Inteiro longo
3
UTF8 C string
Inteiro longo
4
UTF8 text with length
Inteiro longo
5
UTF8 text without length
Inteiro longo
6
Se você omitir o parâmetro textFormat, por padrão 4D usa o formato Mac C string. Com bancos de dados criados a partir da versão 11, 4D funciona por padrão com o conjunto de caracteres Unicode (UTF8) para o gerenciamento de texto, por isso é recomendado o uso deste conjunto de caracteres.
Notas:
A tabela a seguir descreve cada um desses formatos:
Formato texto | Descrição e exemplos |
C string | O texto termina em um caractere NULL (código ASCII $00). |
UTF8 | "" $00 |
"Café" $43 61 66 C3 A9 00 | |
Mac | "" $00 |
"Café" $43 61 66 8E 00 | |
Pascal string | O texto está precedido de um byte de comprimento. |
UTF8 | - |
- | |
Mac | "" $00 |
"Café" $04 43 61 66 8E | |
Text with length | O texto está precedido por 4 bytes (UTF8) ou 2 bytes (Mac) de comprimento. |
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 length | O texto está composto somente por seus caracteres. |
UTF8 | "" Sem dados |
"Café" $43 61 66 C3 A9 | |
Mac | "" Sem dados |
"Café" $43 61 66 8E |
Se você não especificar o parâmetro opcional * nem o parâmetro de deslocamento variável, o valor de texto é armazenado no início do BLOB, substituindo o conteúdo anterior, o tamanho do BLOB é ajustado em conformidade.
Se você passar o parâmetro variável offset, o valor do Texto está escrito no offset (a partir do zero) dentro do BLOB. Não importa onde você escreva o valor de texto, o tamanho do BLOB é aumentado de acordo com o local que você passou (e até o tamanho do texto, se necessário). Novos bytes alocados, com exceção do que você está escrevendo, são inicializados em zero.
Após a chamada, o parâmetro variável offset é devolvido, incrementado pelo número de bytes que foram escritos. Entretanto, você pode reutilizar a mesma variável com outro comando de escrita BLOB para gravar outro valor.
Nota de compatibilidade: como este comando altera o blob passado como parâmetro, não é compatível com objetos blob (tipo 4D.Blob). Ver Passing blobs and blob objects to 4D commands em developer.4d.com
Depois de executar este código:
SET BLOB SIZE(vxBlob;0)
C_TEXT(vtValor)
vtValor:="Café" ` O comprimento de vtValor é 4 bytes
TEXT TO BLOB(vtValor;vxBlob;Mac C string) ` O tamanho do BLOB se torna 5 bytes
TEXT TO BLOB(vtValor;vxBlob;Mac Pascal string) ` O tamanho do BLOB se torna 5 bytes
TEXT TO BLOB(vtValor;vxBlob;Mac text with length) ` O tamanho do BLOB se torna 6 bytes
TEXT TO BLOB(vtValor;vxBlob;Mac text without length) ` O tamanho do BLOB se torna 4 bytes
TEXT TO BLOB(vtValor;vxBlob;UTF8 C string) ` O tamanho do BLOB se torna 6 bytes
TEXT TO BLOB(vtValor;vxBlob;UTF8 text with length) ` O tamanho do BLOB se torna 9 bytes
TEXT TO BLOB(vtValor;vxBlob;UTF8 text without length) ` O tamanho do BLOB se torna 5 bytes
BLOB to integer
BLOB to longint
BLOB to real
BLOB to text
CONVERT FROM TEXT
INTEGER TO BLOB
LONGINT TO BLOB
REAL TO BLOB
Produto: 4D
Tema: BLOB
Número
554
Modificado: 4D v11 SQL
Text, UTF8
Manual de linguagem 4D ( 4D v20 R7)