[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