Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

terça-feira, 13 de setembro de 2016

DELPHI - ClientDataSet Erro: "missing data provider or data packet" quando é carregado de um stream (LoadFromStream)

Reações: 
Após não achar nada na internet que funcione, fica a dica:

// Salvar um CDS dentro de um campo blob no banco de dados
var
AStreamCDS : TMemoryStream;
AMsgCDS : String;
begin
  //...
  AStreamCDS := TMemoryStream.Create;
  try
    CDS.SaveToStream(AStreamCDS, dfBinary);
    CDSDestino.Edit; // Lembarndo que precisa de um campo de id, caso contrario não funciona no applyupdates
    try
      TBlobField(CDSDestino.FieldByName('CAMPO_BLOB')).LoadFromStream(AStreamCDS);
    except
      on E: Exception do
        AMsgCDS := E.Message;
    end;
    CDSDestino.Post;
  finally
    AStreamCDS.Free;
  end;
  //...



// Salvar de um Campo Blob no banco de dados (um CDS salvo como binario) para um TStream, e recarregar dentro de um CDS
var
AStreamCDS : TStream;
begin
  //...
  AStreamCDS :=  CDS_Local.CreateBlobStream(CDS_Local.FieldByName('BL_DATA_SYNC'), bmRead); // Carrega um Cds salvo dentro de um blob
  try
    ACdsStream := TClientDataSet.Create(Nil);
    ACdsStream.LoadFromStream(AStreamCDS);
  finally
    AStreamCDS.Free;
  end;
  //...

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Max Gehringer