Inserir e Ler Foto em Interbase ( Tipo Blob )

Delphi

18/02/2003

Olá...Alguem poderia me dar dica ou dicas de como fazer a leitura de campo Blob de BD em Interbase...Lembro que a imagem virá de um TImage e será passada para uma SP_Cadastro ( Store Procedure )...

A imagem é JPEg...

t+

Valeu


Anonymous

Anonymous

Curtidas 0

Respostas

Dor_poa

Dor_poa

18/02/2003

Lhe recomendo a NAO colocar a imagem dentro do banco...

Faz uma rotina para ele abrir as imagens diretamente... [e menos problematico...


GOSTEI 0
Romeusql

Romeusql

18/02/2003

Como o amigo ja disse não e muito bom colocar imagem no banco de dados..
faz assim
var Foto:Tpicture;
Begin
Foto:=Tpicture.create;
if OpenPicturedialog1 then
Begin
imagem.loadfromfile(OpenPicturedialog1.filename);
Image1.Picture:=Foto;
Foto.Free;

end;
Ok :wink:


GOSTEI 0
Anonymous

Anonymous

18/02/2003

Infelizmente o Delphi NAO traz um suporte muito bom para imagens JPeg.
O componente DBImage nao mostra um arquivo JPEG. So funciona com o BMP, WMF... etc... etc... Todas (É claro...) padrao do Windows.

Quanto ao IB, nao ha problema nenhum pois o campo Tipo Blob foi criado para poder conter QUALQUER tipo de informacao (Desde texto simples ou formatado, Imagens jpeg, bmp ou qquer outra..., Sons Mp3... Wav... ou outro tipo de dado q possa existir... ou ser criado posteriormente). Alias nisso o Velho e bom IB saiu na Frente de TODOS os bancos de Dados existentes (digo TODOS mesmo... DB2 da IBM, Oracle, Informix, M$SQL Server... ) pois CRIOU... EU DISSE CRIOU MESMO... o padrao para armazenamento de dados dos mais variados tipos...).
Se hoje o DB2 da IBM, o Oracle 9i da Oracle, o Informix da Informix e o $QL $erver da M$ fazem, tiveram q COPIAR do IB.
Mas na vida o q é bom tem q ser copiado mesmo...
Filosofias a parte.... Tb tive este problema e para solucionar (depois de muita procura...) descobri q o ´erro´ era no Delphi mesmo... Exitem componentes de terceiros pra fazer isto... ou vc pode fazer o Quebra-Galho que seria gravar no Banco a imagem JPEG sem mostrar no DBImage e pra mostrar salvar a imagem no HD e converter pra BMP e ligar o DBImage (no caso seria um Image e nao um DBImage...) na imagem BMP do HD.... Ai vao as rotinas pra converter JPeg pra BMP....
Eu deixei so BMP mesmo no meu sistema... Ta beleza e o cliente ta satisfeito pra caramba..... Mas o Banco incha Muito...... Muito mesmo....

Um Abraço
Werlon Goulart

//Converte BMP para JPG.
//Acrescente JPeg na Lista de Uses do Form.
Procedure ConverteBMPparaJPG(NomeArq: String; QualidadeJPG: Integer);
Var BitMap: TBitMap;
JPeg : TJPegImage;
begin
BitMap:=TBitMap.Create;
JPeg:=TJpegImage.Create;
Try
BitMap.LoadFromFile(NomeArq);
With JPeg do begin
CompressionQuality :=QualidadeJPG; //100=Sem compactacao(Maior Qualidade, 0=Compactacao Maxima(Menor qualidade)
Assign(BitMap);
Compress;
SavetoFile(ChangeFileExt(NomeArq, ´.JPG´));
end;
Finally
BitMap.Free;
JPeg.Free;
end;
end;


GOSTEI 0
Dor_poa

Dor_poa

18/02/2003

Continuo a dizer, Não coloca imagem no banco...


GOSTEI 0
Anonymous

Anonymous

18/02/2003

Passei uma rotina que desenvolvi esses dias aki no fórum, para gravar jpg no interbase, dê uma procurada.


GOSTEI 0
POSTAR