[firebase-br] URGENTISSIMO - Duvida ao utilizar o Blob

Ronaldo Souza ronaldsouza01 em gmail.com
Seg Ago 24 13:27:47 -03 2009


bom, após horas de tentativas também estou conseguindo gravar e
recuperar. para gravar faço dessa maneira:

   stmImagem := TMemoryStream.Create;
   jpgImagem := TJPEGImage.Create;
   jpgImagem.LoadFromFile(sImagem);
   stmImagem.Position := OffsetMemoryStream;
   jpgImagem.SaveToStream(stmImagem);
   fCodigo := StrToFloat(Edit4.Text);
   cdsImagem.Insert;
   cdsImagem.FieldByName('ID').AsFloat  := fCodigo;
   cdsImagem.FieldByName('Codigo').AsString         := Edit1.Text;
   cdsImagem.FieldByName('Descricao').AsString    := Edit2.Text;
   cdsImagem.FieldByName('Nome').AsString := Edit3.Text;

   (cdsImagem.FieldByName('Image') as TBlobField).BlobType := ftTypedBinary;
   (cdsImagem.FieldByName('Imagem') as TBlobField).LoadFromStream(stmImagem);

   cdsImagem.Post;
   cdsImagem.ApplyUpdates(0);

E para recuperar do banco eu faço dessa maneira:

   cdsImagem.Open;
   gAssinatura := TJPEGImage.Create;
   cdsImagem.Edit;
   try
      gAssinatura.LoadFromStream(cdsImagem.CreateBlobStream(cdsImagemIMG_ASSINATURA,bmReadWrite));
      imgImagem.Picture.Graphic := gAssinatura;
   finally
     gAssinatura.Free;
   end;
   cdsImagem.Cancel;



2009/8/24 Reginaldo Martins Costa <rmc1701e em ig.com.br>:
> Estou começando a fazer uns testes com isso e consegui gravar da seguinte
> forma:
>
>  sqlInsere.ParamByName('Codigo').AsInteger := strtoint(DBEdit2.Text);
>  sqlInsere.ParamByName('Foto').LoadFromFile(OpenPictureDialog1.FileName,
> ftBlob);
>  sqlInsere.ExecSQL;
>
>
> 2009/8/21 Ricardo Rocha <serpentedodeserto em gmail.com>
>
>> Boa Noite COmunidade,
>>
>>
>> Estou utilizando o Firebird-2.0.5.13206, Juntamente com o Delphi 7, e um
>> DBImage, e Crei um campo do tipo BLOB que teoricamente era para poder esta
>> gravando e recuperando Imagens JPG, JPEG ou BMP.
>>
>> Mais nao consegui nem gravar.
>>
>> Alguem teria alguma rotina para poder esta aplicando para poder esta
>> gravando e recuperando o registro.
>>
>> Pois ja passei o dia todo tentando sem exito ja não sei o que estou fazendo
>> de errado.
>>
>> Tenho um botao com este comando.
>>
>>  Var
>>    Imagem:TPicture;
>>    SelectedFile: String;
>>
>>  begin
>>    if PromptForFileName(SelectedFile,'Arquivos de Bitmap (*.bmp)|*.bmp|JPEG
>> (*.JPG, *.JPEG, *.JPE, *.JFIF)|*.JPG; *.JPEG; *.JPE; *.JFIF|Todos os
>> Arquivos (*.*)|*.*','','Localizar Fotografia ', 'C:\PROGRAMA\FOTOS\',False)
>> then
>>      Begin
>>        Imagem:= TPicture.Create();
>>        Imagem.LoadFromFile(SelectedFile);
>>        ClipBoard.Assign(Imagem);
>>        DBImage1.PasteFromClipBoard;
>>        Imagem.Free;
>>        Exit;
>>      End
>>    else
>>      begin
>>        exit;
>>        Imagem.Free;
>>      End;
>>      //ShowMessage(\'Seleção Cancelada\');
>>  end;
>>
>> :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>> Tambei tentei este abaixo:
>>
>>    if (OpenDialog1.Execute) and (SBGravar.Enabled = True) then
>>      begin
>>        Image2.Picture.LoadFromFile(OpenDialog1.FileName);
>>        Image2.PasteFromClipboard;
>>
>>      end;
>>
>> ===============================================
>>
>> dbimage com o datasource apontando para o dataset e o mesmo esta apontando
>> para MDOQuery e pegando o campo BLOB no banco de dados.
>>
>> *******************************************************
>>
>> E nada aguem poderia esta me ajundando por favor.
>>
>>
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista