salvar imagem de um banco para outro
Boa tarde a todos,
tenho um banco de dados Firebird com cadastro de Produto, preciso enviar a foto desse banco
para um banco Mysql, estou a dias procurando algo pela internet mas até o momento não descobri nada,
se alguem de vocês já passou por isso por favor me de uma ajuda, Obrigado...
tenho um banco de dados Firebird com cadastro de Produto, preciso enviar a foto desse banco
para um banco Mysql, estou a dias procurando algo pela internet mas até o momento não descobri nada,
se alguem de vocês já passou por isso por favor me de uma ajuda, Obrigado...
Edson Bezerra
Curtidas 0
Respostas
Valquiria Silva
23/07/2014
Edson, boa noite.
No banco Firebird qual o tipo do campo da foto, e no Mysql?
Penso que você poderia usar um TMemoryStream.
No banco Firebird qual o tipo do campo da foto, e no Mysql?
Penso que você poderia usar um TMemoryStream.
GOSTEI 0
Edson Bezerra
23/07/2014
bom dia Valquiria,
o campo firebird e do tipo blob, eu tentei dessa forma.
var
S : TStream;
Imagem : TJPEGImage;
begin
if not DM.cds_ProdutoIMG_PROD.IsNull then
begin
S := DM.cds_Produto.CreateBlobStream(DM.cds_ProdutoIMG_PROD,bmread);
Imagem := TJPEGImage.Create;
Imagem.LoadFromStream(S);
if (DM_MYSQL.c_IMG.Active) then
DM_MYSQL.c_IMG.Close;
DM_MYSQL.c_IMG.Params[0].AsInteger := DM.cds_ProdutoCODPRODUTO.AsInteger;
DM_MYSQL.c_IMG.Open;
DM_MYSQL.c_IMG.Edit;
DM_MYSQL.c_IMGIMG_PROD.LoadFromStream(S);
DM_MYSQL.c_IMG.ApplyUpdates(0);
end;
end;
mas ele da erro no applyupdate, ele fala que tabela não existe, mas ela existe..
esse é o erro
First chance exception at $7616C41F. Exception class TDBXError with message 'Tabela 'mecanicaturbo02.produtos' não existe'. Process prjHexa.exe (4924)
o campo firebird e do tipo blob, eu tentei dessa forma.
var
S : TStream;
Imagem : TJPEGImage;
begin
if not DM.cds_ProdutoIMG_PROD.IsNull then
begin
S := DM.cds_Produto.CreateBlobStream(DM.cds_ProdutoIMG_PROD,bmread);
Imagem := TJPEGImage.Create;
Imagem.LoadFromStream(S);
if (DM_MYSQL.c_IMG.Active) then
DM_MYSQL.c_IMG.Close;
DM_MYSQL.c_IMG.Params[0].AsInteger := DM.cds_ProdutoCODPRODUTO.AsInteger;
DM_MYSQL.c_IMG.Open;
DM_MYSQL.c_IMG.Edit;
DM_MYSQL.c_IMGIMG_PROD.LoadFromStream(S);
DM_MYSQL.c_IMG.ApplyUpdates(0);
end;
end;
mas ele da erro no applyupdate, ele fala que tabela não existe, mas ela existe..
esse é o erro
First chance exception at $7616C41F. Exception class TDBXError with message 'Tabela 'mecanicaturbo02.produtos' não existe'. Process prjHexa.exe (4924)
GOSTEI 0
Edson Bezerra
23/07/2014
o banco de dados mysql não é local, eu utilizo insert into, para inserir os demais campos, mas o campo blob, não da pra enviar via insert into..
GOSTEI 0