Foto no Banco de Dados
Galera estou salvando fotos em um banco firebird, queria saber qual a melhor forma de fazer. Li uns postes sobre Base64, porém não sei como fazer via Delphi.
Vou precisar salva mais de uma foto por produto, por esse motivo me preocupo com a performance.
Tenho a seguinte estrutura
Código Delphi
Vou precisar salva mais de uma foto por produto, por esse motivo me preocupo com a performance.
Tenho a seguinte estrutura
CREATE TABLE PRODUTOS_FOTO (
ID INTEGER NOT NULL,
PROD_ID INTEGER,
FOTO BLOB SUB_TYPE 0 SEGMENT SIZE 80
);
Código Delphi
var
jpg : TJpegimage;
begin
CdsFoto.Close;
CdsFoto.CommandText := 'select * from PRODUTOS_FOTO where prod_id = '+CdsProdutoPROD_ID.AsString;
CdsFoto.Open;
if opFoto.Execute then
begin
if not(DsFoto.DataSet.State in[dsInsert,dsEdit]) then
DsFoto.DataSet.Insert;
jpg := TJpegimage.Create;
try
CdsFotoPROD_ID.Asinteger := CdsProdutoPROD_ID.AsInteger;
CdsFotoFOTO.LoadFromFile(opFoto.FileName);
jpg.LoadFromFile(opFoto.FileName);
Image1.Picture.Assign(jpg);
finally
jpg.Free;
end;
end;
Sidney Abreu
Curtidas 0
Respostas
Thalles Oliveira
28/08/2018
Opa, fala Sidney, tudo bem ?
Seguinte, isso é muito relativo...
Eu uso um campo Domain desta maneira :
Name : DIMAGEM
Field Type : BLOB
Size : 400
Not Null : Unchecked ( Desmarcado )
SubType : Binary
Charset / Collate = Null ( Não preencho nada )
e faço também uma verificação somente para gravar imagens .bmp e .jpg para manter a performance, imagens png e outros formatos acredito que não tem necessidade e já afeta a performance e aumenta e muito o tamanho do banco dependendo da quantidade de imagens....
se ainda precisar posso enviar o código para gravar a imagem no banco, é um pouco extenso mas funciona perfeitamente pra min e você pode ajustar conforme sua necessidade..
Seguinte, isso é muito relativo...
Eu uso um campo Domain desta maneira :
Name : DIMAGEM
Field Type : BLOB
Size : 400
Not Null : Unchecked ( Desmarcado )
SubType : Binary
Charset / Collate = Null ( Não preencho nada )
e faço também uma verificação somente para gravar imagens .bmp e .jpg para manter a performance, imagens png e outros formatos acredito que não tem necessidade e já afeta a performance e aumenta e muito o tamanho do banco dependendo da quantidade de imagens....
se ainda precisar posso enviar o código para gravar a imagem no banco, é um pouco extenso mas funciona perfeitamente pra min e você pode ajustar conforme sua necessidade..
GOSTEI 0