Você está na página 1de 4

9/15/2016

Ler blob do banco com FastReport - Delphi | Comunidade do Hardware

PGINAINICIAL

R7TV

NOTCIAS

ENTRETENIMENTO

ESPORTES

VDEOS

REDERECORD

R7PLAY

SERVIOS

LogarouCriarumaConta

Fruns

SitedoHardware

Fruns Profissional Programao,scripts,webebancodedados

LerblobdobancocomFastReportDelphi
Relacionados

Maisresultados?Usenossapesquisa

1.Memrianoliberadanodelphicamposblob
blob ler

JeanLuc Abril19,2013

Ol,
tenho um bd com um campo do tipo blob:
Cdigo: FOTOGRAFIA IMAGEM /* IMAGEM = BLOB SUB_TYPE 0 SEGMENT SIZE 1 */
Da, conecto tudo certinho no fast reports, mas quando atribuo o campo a um componente de imagem, nada aparece.
Eu preciso pegar a imagem desse blob (que est l e eu consigo visualizar pelo ibexpert) e imprimi-la no relatrio. Mas como?
Eu envio assim pro banco:
Cdigo: IB_Query1.ParamByName('FOTOGRAFIA').LoadFromFile(Dialog.FileName, ftBlob);
Algum me ajuda, por favor!!!!

Aqui est o banco e o relatrio. Estou fazendo tudo certo. No fao a menor ideia do por que disso...
http://www.hardware.com.br/comunidade/blob-ler/1299158/

1/4

9/15/2016

Ler blob do banco com FastReport - Delphi | Comunidade do Hardware

http://www.4shared.com/rar/J0LxgC-m/Relatorio_e_Banco.html

didonsom Abril20,2013

Ol,
Quando eu utilizava campo blob para armazenar as fotos e carregar no Fast Report, fazia dessa forma. Mudei essa rotina pq deixou meu sistema muito lento
ao carregar as imagens.. No sei se vai servir para vc pq utilizo o Mysql com o componente Zeos. A Verso do Delphi que utilizo a 2010

funo para foto


Cdigo(Text):

http://www.hardware.com.br/comunidade/blob-ler/1299158/

2/4

9/15/2016

Ler blob do banco com FastReport - Delphi | Comunidade do Hardware

//FUNOPARAAFOTO
functionLoadImage(AImage:TImage;ABlobField:TBlobField):Boolean;
var
JpgImg:TJPEGImage;
StMem:TMemoryStream;
begin
ifABlobField.DataSet.IsEmptythen
begin
Result:=False;
Exit;
end;
AImage.Picture.Assign(nil);
ifnot(ABlobField.IsNull)andnot(ABlobField.AsString='')then
begin
jpgImg:=TJPEGImage.Create;
stMem:=TMemoryStream.Create;
try
ABlobField.SaveToStream(StMem);
StMem.Position:=0;
JpgImg.LoadFromStream(StMem);
AImage.Picture.Assign(JpgImg);
finally
StMem.Free;
JpgImg.Free;
end;
end;
Result:=True;
end;

coloquei um opendialog1 como nome de abrefoto e criei um boto com o seguinte cdigo. Para salvar s dar um post na tabela.

Cdigo(Text):

http://www.hardware.com.br/comunidade/blob-ler/1299158/

3/4

9/15/2016

Ler blob do banco com FastReport - Delphi | Comunidade do Hardware

procedureTf_meusdados.botaofotoClick(Sender:TObject);
var
Imagem:TFileStream;
begin
ifabrefoto.Executethen//abrefoto=OpenDialog
begin
Imagem:=TFileStream.Create(abrefoto.FileName,fmOpenReadorfmShareDenyWrite);
dmdados.tbmeusdados.Edit;//tabelaemmododeedio
dmdados.tbmeusdadosfoto.LoadFromStream(Imagem);//carregaaimagem
FileClose(Imagem.Handle);
end;
end;

para carregar essa foto no delphi eu tenho um dbimage.


l em Object Inspector na opo data source, selecionei o data source dessa tabela e na opo data field coloquei o nome do campo que recebe a foto em blob.
No fast Report fiz a mesma coisa. Peguei um frxpicture1 e na opo data source e data field coloquei os dados da tabela e do campo que recebe a foto.
Quando o programa estiver em tempo de execuo e vc realizar um
frxreport.ShowReport(); ele vai carregar a foto.

Espero ter ajudado.


Abraos,
Fruns Profissional Programao,scripts,webebancodedados

19992014Hardware.com.breRdioeTelevisoRecordS/A.Todososdireitosreservados.
Ajuda SitedoHardware

http://www.hardware.com.br/comunidade/blob-ler/1299158/

Irparaotopo

4/4