Saltar para o conteúdo principal
Versão: Próximo

REAL TO BLOB

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

ParâmetroTipoDescrição
realReal🡒Valor de tipo real a escrever no BLOB
BLOBBLOB🡒BLOB a receber o valor Real
realFormatInteiro longo🡒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:

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