Fórum Zeos + Firebird + Image #424866
27/09/2012
0
Não tenho conhecimento de como salvar uma imagem de um Image ou DBImage num campo BLOB do firebird usando ZEOS.
Gostaria de saber como salvar a imagem,carregada num TImage ou DBImage,no banco de dados.
O campo da imagem é 'FOTO'.
Obrigado.
Vtrx
Curtir tópico
+ 0Posts
28/09/2012
William
[url]https://www.devmedia.com.br/como-gravar-caminho-de-imagens-no-banco-de-dados-e-exibi-las-depois/25003[/url]
Gostei + 0
28/09/2012
Vtrx
O código teste esta em C++,mas é fácil alterar para o delphi.
if (OpenPictureDialog1->Execute()) {Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);}
DataModule2->ZQuery1->Close();
DataModule2->ZQuery1->SQL->Clear();
DataModule2->ZQuery1->SQL->Text = "insert into PRODUTOS (COD,FOTO) VALUES (456,:ThePicture)" ;
DataModule2->ZQuery1->Params->Clear();
DataModule2->ZQuery1->Params->CreateParam(ftBlob,"ThePicture", ptInput);
DataModule2->ZQuery1->ParamByName("ThePicture")->LoadFromFile(OpenPictureDialog1->FileName,ftBlob);
DataModule2->ZQuery1->ExecSQL();
//=====================================Agora preciso saber como carregar a imagem.
Alguem?
Gostei + 0
29/09/2012
Alisson Santos
O ideal é salvar o caminho que está a imagens e copiar para uma posta especifica.
Gostei + 0
29/09/2012
Vtrx
Está em C++,para Delphi a alteração é mínima.
Dou um Select normalmente escolhando os campos que preciso e o campo BLOB.
Usando um TImage;
TStream *stream = DataModule2->ZQuery1->CreateBlobStream(DataModule2->ZQuery1->FieldByName("FOTO"),bmRead);
if (stream->Size < 50) {return;}
TImage* img = new TImage(this);
stream->Position = 0;
Image1->Picture->Graphic->LoadFromStream(stream);
stream->Free();Estava dando erro no Image quando o campo continha poucos bytes,então fiz o teste do tamanho do Stream antes de abrir a imagem.
Gostei + 0
29/09/2012
Vtrx
A rotina é para CARREGAR a imagem e não salvar como postei acima!
Lembrando tambem ,que fiz essas mesmas perguntas em 2006(usando ZEOS) e ninguem respondeu,me obrigando na época a salvar o caminho das imagens.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)