Saltar para o conteúdo principal
Versão: 21 R4 BETA

REAL TO BLOB

REAL TO BLOB ( real : Real ; blob : Blob ; realFormat : Integer {; offset : Variable } )
REAL TO BLOB ( real : Real ; blob : Blob ; realFormat : Integer {; *} )

ParâmetroTipoDescrição
realReal→Valor de tipo real a escrever no BLOB
BlobBlob→BLOB a receber o valor Real
realFormatInteger→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
Histórico
VersãoAlterações
6Criado por

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-seguroyes