dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Como ler um json de um campo Blob?

Olá pessoa!

Seguidamente gosto de fazer testes com o que há disponível na ferramenta.

Nesta linha me deparei com a seguinte situação:
Precisava fazer a leitura de um json que estava salvo em um campo Blob,
como posso fazer a leitura do mesmo?

Para resolver o problema, criei o seguinte método:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function ExtrairJson(DataSet: TDataSet; FieldName : string) : string;
var
  FMemoryStream  : TMemoryStream;
  FStringStream  : TStringStream;
  vtext : string;
  I : Integer;
begin
  if not DataSet.FieldByName(FieldName).IsEmpty then
  begin
    FMemoryStream := TMemoryStream.Create;
 
    FStringStream := TStringStream.Create( DataSet.FieldByName(FieldName).AsString , TEncoding.ASCII);
 
    TNetEncoding.Base64.Decode(FStringStream, FMemoryStream);
    FMemoryStream.Position := 0;
 
    SetString(vtext, PAnsiChar(FMemoryStream.Memory), FMemoryStream.Size);
 
    { Retornando }
    Result := vtext;
 
    FMemoryStream.Free;
    FStringStream.free;
  end;
end;

Claro que é possível criar uma função que retorne um TJsonValue,
até os parâmetros podem ser substituídos por um aField : TBlobField, mas ai deixo a
critério de vocês criarem a solução que melhor se aplique a sua necessidade.

Vamos ao exemplo de uso:

1
2
3
4
procedure Button1Click(Sender : TObject);
begin
  Memo1.Text := ExtrairJson(MeuDataSet, 'CAMPO_BLOB');
end;

Caso criei uma melhoria ou tenha alguma sugestão, deixe o seu comentário!

  • Giovani Da Cruz
  • 0 comentários
  • 26 de maio de 2017

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados