Além das manipulações explicadas no vídeo, também deve ter em conta o seguinte:
No início, nós fazemos sempre as mesmas perguntas:
Como me pode servir e em quais circunstâncias?
Colocar a informação é muito fácil, mas como e em qual ordem será?
Vamos começar por abordar a segunda pergunta:
Enquanto você pode acessar qualquer byte do BLOB, na maioria dos casos nós usaremos o que chamamos de FIFO (First In First Out). Isso significa que você recupera o conteúdo do BLOB na ordem em que você o colocou. Para fazer uma simples analogia, vamos dar uma prateleira onde você armazena os livros da esquerda para a direita. Comece por colocar um pequeno livro à esquerda e, em seguida, um grande livro junto ao primeiro e, em seguida, outro grande livro e depois uma foto da sua sogra e uma bijuteria de suas últimas férias, etc. Quando chega a hora de tirar a poeira da prateleira, você não pensa em quantas polegadas do lado esquerdo se encontra um livro. Você o toma na ordem em que estão e ajusta seu olhar (e mãos), dependendo do tamanho do último objeto selecionado.
É o mesmo em um BLOB, especialmente porque você sabe o que você salvou no BLOB.
Por exemplo, quando coloca:
um inteiro, é de 2 bytes
um inteiro longo é de 4 bytes
embora uma data é de 6 bytes
...
Para o texto, é indicado como deseja que seja guardado e como é expressada a longitude do texto (cadeia C, cadeia Pascal, etc.).
Retornando à leitura, você vai tomar a informação na mesma ordem novamente e guarde-a nas variáveis para adaptar o conteúdo esperado (digitado corretamente).
Desta forma o BLOB é lido de forma consistente. Aqui está a resposta à primeira pergunta (qual é o propósito de um BLOB?) Você pode usar um BLOB, por exemplo, nos seguintes casos:
Para guardar variáveis, listas hierárquicas, arrays
Para o intercâmbio de documentos entre o cliente e o servidor
Para proteger dados confidenciais em um BLOB criptografado
Para guardar as variáveis que contém plug-ins
Para enviar imagens, textos ou documentos em um navegador web
Para comunicar-se com um serviço web.
O comando VARIABLE TO BLOB guarda os dados em um formato interno 4D. É por isso que o espaço necessário é um pouco maior que o tamanho de dados bruto.A vantagem desse comando é que ele evita ter que gerenciar o Byte Swapping (posição do byte mais significativo) quando é trabalhado em várias plataformas.
Quando preenche um BLOB, pode usar o caractere de * em vez da variável $PositionInBlob que usamos.
Quando este parâmetro é usado, 4D entende que você deve armazenar a variável no final do BLOB e aumentar assim o seu tamanho.
Agora imagine que você tem uma série de parâmetros no seu banco de dados que devem ser levados em conta para cada usuário (ou cada site onde o aplicativo está instalado):
a tela de inicio
a cor de fundo
a fonte e o tamanho dos caracteres
e assim sucessivamente. Eles são as preferências do usuário.
Para mantê-los, existem várias soluções (criar uma tabela, um texto de arquivo, um arquivo XML, etc.).
No nosso caso, queremos manter essas preferências em um BLOB, que é armazenado em um arquivo no disco rígido.