4D v16.3

Comandos BLOB

Página Inicial

 
4D v16.3
Comandos BLOB

Comandos BLOB  


 

4D suporta o tipo de dados BLOB (objetos binários grandes).

Você pode definir campos e variáveis tipo BLOB e arrays tipo BLOB:

  • Para criar um campo BLOB, selecione BLOB na lista suspensa tipo de campo na janela Propriedades do Campo.
  • Para criar uma variável BLOB, use o comando declaração do compilador C_BLOB. Você pode criar variáveis processo, locais, e inter-processos do tipo BLOB.
  • Para criar um array de tipo BLOB, utilize o comando ARRAY BLOB.

Em 4D, um BLOB é uma série de bytes de comprimento variável, que pode ser tratado como um objeto inteiro ou cujos bytes podem ser endereçados individualmente. Um BLOB pode ser vazio (comprimento zero) ou pode conter até 2147483647 bytes (2 GB).

Um BLOB é carregado na memória na sua totalidade. Uma variável ou array de tipo BLOB se mantém e existe apenas na memória. Um campo BLOB é carregado na memória do disco, como o resto do registro a que pertence.

Como os outros tipos de campo que podem reter uma grande quantidade de dados (campos de tipo imagem), os campos BLOB, não são duplicadas na memória quando você modifica um registro. Portanto, o resultado retornado pelos comandos Old e Modified não é significativo quando aplicado a um campo BLOB.

Um BLOB pode reter qualquer tipo de dados, por isso não tem nenhuma representação padrão na tela. Se você exibir um campo BLOB ou variável em um formulário, ele vai aparecer sempre em branco, independentemente do seu conteúdo.

Você pode usar campos BLOB para armazenar qualquer tipo de dados, até 2 GB. Você não pode indexar um campo BLOB, então você deve usar uma fórmula para buscar registros sobre os valores armazenados em um campo BLOB.

BLOBs 4D podem ser passados como parâmetros para comandos 4D ou rotinas de plug-in que esperam um parâmetro de um BLOB. BLOBS também podem ser passadas como parâmetros para um método do usuário ou ser retornado como um resultado da função.

Para passar um BLOB para seus próprios métodos, você também pode definir um ponteiro para o BLOB e passar o ponteiro como parâmetro.

Exemplos:

  ` Declare uma variável do tipo BLOB
 C_BLOB(umaBlobVar)
  ` O BLOB é passado como parâmetro para um comando 4D
 SET BLOB SIZE(unBlobVar;1024*1024)
  ` O BLOB é passado como parâmetro para uma rotina externa
 $errCode:=Fazer Algo Com Este BLOB(umaBlobVar)
  ` O BLOB é passado como um parâmetro para um método que retorna um BLOB
 C_BLOB(trazerBlob)
 trazerBlob:=Preencher_Blob(umaBlobVar)
  ` Um ponteiro para o BLOB é passado como parâmetro para um método do usuário
 CALCULAR BLOB(->umaBlobVar)

Nota para os desenvolvedores de plug-in: Um parâmetro BLOB é declarado como "&O" (a letra "O", não o dígito "0").

Você pode atribuir BLOBs uns aos outros.

Exemplo:

  ` Declarar duas variáveis de tipo BLOB
 C_BLOB(vBlobA;vBlobB)
  ` Definir o tamanho do primeiro BLOB em 10K
 SET BLOB SIZE(vBlobA;10*1024)
  ` Atribuir o primeiro BLOB ao segundo
 vBlobB:=vBlobA

No entanto, nenhum operador pode ser aplicado para BLOBs, não há expressão do tipo BLOB.

Você pode endereçar cada byte de um BLOB individualmente usando as chaves {...}. Dentro de um BLOB, os bytes são numerados de 0 a N-1, onde N é o tamanho do BLOB. Exemplo:

  ` Declarar uma variável de tipo BLOB
 C_BLOB(vBlob)
  ` Fixar o tamanho do BLOB em 256 bytes
 SET BLOB SIZE(vBlob;256)
  ` O loop a seguir inicializa os 256 bytes do BLOB em zero
 For(vByte;0;BLOB size(vBlob)-1)
    vBlob{vByte}:=0
 End for

Como você pode endereçar todos os bytes de um BLOB individualmente, você pode realmente armazenar o que quiser em um campo ou variável BLOB.

4D oferece os seguintes comandos para trabalhar com BLOBS:

Estes comandos são descritos neste capítulo.

Adicionalmente:



Ver também 

APPEND DATA TO PASTEBOARD
BLOB TO PICTURE
BLOB TO USERS
C_BLOB
GENERATE CERTIFICATE REQUEST
GENERATE ENCRYPTION KEYPAIR
GET PASTEBOARD DATA
GET RESOURCE
PICTURE TO BLOB
PICTURE TO GIF
USERS TO BLOB
WEB SEND BLOB

 
PROPRIEDADES 

Produto: 4D
Tema: BLOB

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)