Saltar para o conteúdo principal
Versão: 20 R7 BETA

REAL TO BLOB

REAL TO BLOB ( real ; BLOB ; realFormat {; offset | *} )

ParâmetroTipoDescrição
realRealValor de tipo real a escrever no BLOB
BlobBlobBLOB a receber o valor Real
realFormatInteger0 Formato real nativo 1 Formato real estendido 2 Formato real doble Macintosh 3 Formato real duplo Windows
offset | *Variável, OperadorOffset 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:

ConstanteTipoValor
Native real formatInteiro longo0
Extended real formatInteiro longo1
Macintosh double real formatInteiro longo2
PC double real formatInteiro longo3

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 comando552
Thread-seguro