REAL TO BLOB
REAL TO BLOB ( real ; BLOB ; realFormat {; offset | *} )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
real | Real | → | Valor de tipo real a escrever no BLOB |
Blob | Blob | → | BLOB a receber o valor Real |
realFormat | Integer | → | 0 Formato real nativo 1 Formato real estendido 2 Formato real doble Macintosh 3 Formato real duplo Windows |
offset | * | Variável, Operador | ↔ | Offset no BLOB (expressado em bytes) ou * para adicionar o valor |
Novo offset depois da escritura se * for omitido |
Descrição
O comando REAL TO BLOB grava o valor real no BLOB blob.
O parâmetro realFormat corrige o formato interno e ordenação de bytes do valor real a ser escrito. Você passa uma das seguintes constantes pré-definidas fornecidas por 4D:
Constante | Tipo | Valor |
---|---|---|
Native real format | Inteiro longo | 0 |
Extended real format | Inteiro longo | 1 |
Macintosh double real format | Inteiro longo | 2 |
PC double real format | Inteiro longo | 3 |
Nota sobre a independência de plataforma: Se você trocar BLOBs entre as plataformas Macintosh e PC, cabe a você a gerenciar os formatos e troca de bytes ao usar este comando.
Se você especificar o parâmetro opcional *, o valor real é anexado ao BLOB, o tamanho do BLOB é prorrogado em conformidade. Usando o parâmetro opcional *, você pode armazenar qualquer número sequencial Inteiro, Inteiro longo, Real ou valores de texto (ver outros comandos BLOB) em um BLOB, enquanto o BLOB cabe na memória.
Se você não especificar o parâmetro opcional * ou o parâmetro variável offset, o valor real é 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 real está escrito no offset (a partir do zero) dentro do BLOB. Não importa onde você escreve o valor real, o tamanho do BLOB é aumentado de acordo com o local que você passou (até 8 ou 10 bytes, 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. Portanto, você pode reutilizar a mesma variável com outro comando de escrita BLOB para gravar outro valor.
Nota
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
Exemplo 1
Depois de executar este código:
var vrValor : Real
vrValor:=...
REAL TO BLOB(vrValor;vxBlob;Extended real format)
- Em todas as plataformas, o tamanho do vxBlob é de 10 bytes
Exemplo 2
Depois de executar esse código:
var vrValor : Real
vrValor:=...
REAL TO BLOB(vrValor;vxBlob;Native real format)
- Em todas as plataformas, o tamanho de vxBlob é 8 bytes
Exemplo 3
Depois de executar este código:
SET BLOB SIZE(vxBlob;100)
var vrValor : Real
vrValor:=...
INTEGER TO BLOB(vrValor;vxBlob;Windows Double real format) // o Formato real doble Macintosh
- Em todas as plataformas, o tamanho do vxBlob é de 8 bytes
Exemplo 4
Depois de executar este código:
SET BLOB SIZE(vxBlob;100)
var vrValor : Real
vrValor:=...
vlOffset:=50
REAL TO BLOB(vrValor;vxBlob;Windows Double real format;vlOffset) // o Formato real doble Macintosh
- Em todas as plataformas, o tamanho de vxBlob é de 100 bytes
- Em todas as plataformas, o valor real é armazenado nos bytes #50 até o #57
- Os outros bytes do BLOB são inalterados
- A variável vlOffset foi incrementada em 8 (e agora é igual a 58)
Exemplo 5
Depois de executar este código:
var vrValor : Real
vrValor:=...
REAL TO BLOB(vrValor;vxBlob;Macintosh double real format) // o Formato real doble Windows
- Em todas as plataformas, o tamanho do vxBlob é de 8 bytes
Exemplo 6
Depois de executar este código:
SET BLOB SIZE(vxBlob;100)
REAL TO BLOB(vrValor;vxBlob;Extended real format;*)
- Em todas as plataformas, o tamanho do vxBlob é de 110 bytes
- Em todas as plataformas, o valor real é armazenado nos bytes #100 a #109
- Os outros bytes do BLOB são inalterados
Ver também
BLOB to integer
BLOB to longint
BLOB to real
BLOB to text
INTEGER TO BLOB
LONGINT TO BLOB
TEXT TO BLOB
Propriedades
Número do comando | 552 |
Thread-seguro | ✓ |