Fórum Gravar Foto no Banco #41742
24/01/2004
0
Dmprincipal.qry_Produto.close;
Dmprincipal.qry_Produto.sql.clear;
Dmprincipal.qry_Produto.Sql.Add(´Insert into Produto´);
Dmprincipal.qry_Produto.Sql.Add(´(Mem_ImagemProduto´);
Dmprincipal.qry_Produto.Sql.Add(´Values (:Mem_ImagemProduto´);
Dmprincipal.qry_Produto.Sql.Add(´Where Str_CodigoProduto = :Str_CodigoProduto´);
Dmprincipal.qry_Produto.Parambyname(´Mem_ImagemProduto´).AsBlob := [color=red:d4f3e75f79]Imagem[/color:d4f3e75f79];
Dmprincipal.qry_Produto.Parambyname(´Str_CodigoProduto).Asstring := [color=red:d4f3e75f79]Codigoproduto[/color:d4f3e75f79];
Dmprincipal.qry_Produto.execsql;
Espero contar com a colaboração de vcs mais uma vez
Ari
Curtir tópico
+ 0Posts
24/01/2004
Afarias
o q vc quer fazer é um UPDATE (eu acho!)
with DMPrincipal.qry_Produto do begin Sql.Clear; Sql.Add(´UPDATE PRODUTO SET mem_ImagemProduto = :IMG´); Sql.Add(´WHERE Str_CodigoProduto = :COD´); ParamByName(´IMG´).LoadFromFile(´arquivo´); // ou LoadFromStream() Parambyname(´COD´).AsString := CodigoProduto; ExecSql; end;
T+
Gostei + 0
24/01/2004
Ari
Agora porque esta dando o seguinte erro ao compilar o programa na linha [color=red:fcef6438d8]ParamByName(´Mem_ImagemProduto´).LoadFromStream(Stm);[/color:fcef6438d8], coloquei a unit JPEG na Uses
Not enough actual parameters
procedure TFrmCadProduto.Button1Click(Sender: TObject);
var
Stm: TStream;
begin
Stm := TMemoryStream.Create;
try
(ImagemProduto.Picture.Graphic as TJpegImage).SaveToStream(Stm);
Stm.Position := 0;
with Dmprincipal.qry_Produto do
try
SQL.Text := ´INSERT INTO Produto (Str_CodigoProduto, Mem_ImagemProduto) VALUES (:Str_CodigoProduto, :Mem_ImagemProduto)´;
//Transaction.StartTransaction;
ParamByName(´Str_CodigoProduto´).Asstring := ´1111´;
ParamByName(´Mem_ImagemProduto´).LoadFromStream(Stm);
ExecSql;
finally
DmPrincipal.transacao.CommitRetaining;
end;
finally
Stm.Free;
end;
end;
Gostei + 0
26/01/2004
Afarias
|linha ParamByName(´Mem_ImagemProduto´).LoadFromStream(Stm);,
|coloquei a unit JPEG na Uses
pq vc está usando um IBQuery para fazer o processo!
como o IBQuery deriva de TDataSet, vc tem o Params padrão do Delphi, sendo assim, no LoadFromStream vc tem q passar o Stream e o tipo do Blob.
ex::
ParamByName(´Mem_ImagemProduto´).LoadFromStream(Stm, ftBlob);
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)