GARANTIR DESCONTO

Fórum Como incluir um Arquivo em um Campo BLOB no Firebird? #324596

03/07/2006

0

Olá,

tenho um campo BLOB no firebird 1.5, e um caminho em formato de string para um arquivo, como eu faço pra pegar este arquivo, e salvá-lo dentro deste campo BLOB? E depois, como faço pra pegar este arquivo, salvar em um local, e executá-lo?


Desde já agradeço

[]s


Titanius

Titanius

Responder

Posts

04/07/2006

Titanius

Sobe...


Responder

Gostei + 0

04/07/2006

Cabelo

Colega...

Existe bastante material disponível aqui no fórum sobre o assunto... antes de postar um novo tópico, tente sempre procurar primeiro... blz.

mas vamos lá...

é bem simples... vc primeiro precisa usar um clientdataset...

selecione o keyField + o campo Blob da table e abra normalmente..

crie os campos calculados no fieldseditor em Design Time

use os métodos loadfromfile e savetofile do campo do client

um abraço


Responder

Gostei + 0

04/07/2006

Thiago Vidal

Cara, vou te ajudar pq ja procurei por isso aqui no forum, e nenhuma das dicas encontradas aqui funcionou.

A única coisa que funcionou comigo, foi esse ´CreateBlobStream´ do dataset.

Supondo que seu dataset se chame ´Query´, a string com o caminho para o arquivo se chame ´Arquivo´, e o campo blob ´Texto´.

var
  Arquivo: string;
  bs: TStream;
  fs: TMemoryStream;
begin
  Query.Edit;
  fs := TMemoryStream.Create;
  bs := Query.CreateBlobStream(Query.FieldByName(´Texto´), bmWrite);
  try
    fs.LoadFromFile(Arquivo);
    fs.SaveToStream(bs);
  finally
    Query.Post;
    bs.Free;
    fs.Free;
  end;
end;



Responder

Gostei + 0

04/07/2006

Cabelo

Colega...

O Stream é utilizado somente para carregar um arquivo texto para um memo por exemplo... ou um arquivo de imagem para um TImage..

mas manipulação de arquivos propriamente dito deve ser feito através dos métodos

LoadFromFile..

e

SaveToFile..

e no fórum tem muita coisa boa.. tenho aqui muitos programas feitos a partir de dicas daqui do fórum...

claro que nem sempre existe aquilo que precisamos... mas é só pesquisar e juntar as coisas...

um abraço..


Responder

Gostei + 0

04/07/2006

Titanius

Amigo, aqui não funcionou.. estou usando ClientDataSet.... será que é isso!?

[]s


Responder

Gostei + 0

04/07/2006

Cabelo

Qual o erro ????

vc está utilizando assim???

campoblobdoclientdataset.loadfromfile(caminho);

campoblobdoclientdataset.savetofile(caminho);

não tem muito segredo...

o uso do TStream é aconselhável para o uso de campos blob do tipo texto ou imagem... eu aconselho o restante dos arquivos, .EXE, .DOC, .PDF, etc... vc utilizar esses métodos...

o TStream aqui por exemplo deu um bug, alterando o arquivo .DOC.. ele simplesmente absteve o cabeçalho e o rodapé...

eu usei o loadfromfile e savetofile direto dos campos do client e funcionou perfeitamente..


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar