copiar de um banco para outro
boa noite galera, estou tendo um problema, e creio que nao seja dificil de resolver, tenho 2 bancos de dados, 1 pdv e outro servidor, quero copiar a venda do pdv para o servidor, e estou usando esse código aqui em baixo, ele está funcionando, ele copia certo, mas ele só copia a primeira linha, as demais vendas ele nao copia, ele copia a mesma varias vezes, dependendo de quantas vezes eu chamo o bottao responsavel, me ajudem. abraço
procedure TfrmPrincipal.Button4Click(Sender: TObject);
begin
qrpdv_Tabela.Close;
qrpdv_Tabela.sql.clear;
qrpdv_Tabela.sql.add('select *from c000032');
qrpdv_tabela.open;
if qrpdv_tabela.RecordCount > 0 then
begin
try
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
qrservidor_tabela.sql.add('insert into C000032 (');
qrservidor_tabela.sql.add('CODIGO,');
qrservidor_tabela.sql.add('CODNOTA,');
qrservidor_tabela.sql.add('CODPRODUTO,');
qrservidor_tabela.sql.add('UNITARIO,');
qrservidor_tabela.sql.add('TOTAL,');
//qrservidor.sql.add('PRECO_PROMOCAO,');
qrservidor_tabela.sql.add('DATA,');
//qrservidor.sql.add('FIM_PROMOCAO,');
qrservidor_tabela.sql.add('CST,');
qrservidor_tabela.sql.add('ALIQUOTA,');
qrservidor_tabela.sql.add('SERIAL,');
qrservidor_tabela.sql.add('UNIDADE,');
qrservidor_tabela.sql.add('QTDE,');
qrservidor_tabela.sql.add('ECF_CAIXA,');
qrservidor_tabela.sql.add('CUPOM_ITEM,');
qrservidor_tabela.sql.add('MOVIMENTO_ESTOQUE');
qrservidor_tabela.sql.add(') values (');
qrservidor_tabela.sql.add(':CODIGO,');
qrservidor_tabela.sql.add(':CODNOTA,');
qrservidor_tabela.sql.add(':CODPRODUTO,');
qrservidor_tabela.sql.add(':UNITARIO,');
qrservidor_tabela.sql.add(':TOTAL,');
//qrservidor.sql.add(':PRECO_PROMOCAO,');
qrservidor_tabela.sql.add(':DATA,');
//qrservidor.sql.add(':FIM_PROMOCAO,');
qrservidor_tabela.sql.add(':CST,');
qrservidor_tabela.sql.add(':ALIQUOTA,');
qrservidor_tabela.sql.add(':SERIAL,');
qrservidor_tabela.sql.add(':UNIDADE,');
qrservidor_tabela.sql.add(':QTDE,');
qrservidor_tabela.sql.add(':ECF_CAIXA,');
qrservidor_tabela.sql.add(':CUPOM_ITEM,');
qrservidor_tabela.sql.add(':MOVIMENTO_ESTOQUE');
qrservidor_tabela.sql.add(')');
qrservidor_tabela.parambyname('CODIGO').asstring := qrpdv_tabela.fieldbyname('codigo').asstring;
qrservidor_tabela.parambyname('CODNOTA').asstring := copy(qrpdv_tabela.fieldbyname('codNOTA').asstring,1,15);
qrservidor_tabela.parambyname('CODPRODUTO').asstring := copy(qrpdv_tabela.fieldbyname('CODproduto').asstring,1,6);
qrservidor_tabela.parambyname('UNITARIO').Asfloat := qrpdv_tabela.fieldbyname('uniTARIO').asfloat;
qrservidor_tabela.parambyname('TOTAL').asfloat := qrpdv_tabela.fieldbyname('TOTAL').asfloat;
//qrservidor.parambyname('PRECO_PROMOCAO').asfloat := qrpdv_tabela.fieldbyname('preco_promocao').asfloat;
qrservidor_tabela.parambyname('DATA').asdatetime := qrpdv_tabela.fieldbyname('DATA').asdatetime;
//qrservidor.parambyname('FIM_PROMOCAO').asdatetime := qrpdv_tabela.fieldbyname('fim_promocao').asdatetime;
qrservidor_tabela.parambyname('CST').asstring := qrpdv_tabela.fieldbyname('cst').asstring;
qrservidor_tabela.parambyname('ALIQUOTA').asfloat := qrpdv_tabela.fieldbyname('aliquota').asfloat;
qrservidor_tabela.parambyname('SERIAL').asfloat := 0;
qrservidor_tabela.parambyname('UNIDADE').AsInteger := 0;
//scst := qrservidor_tabela.fieldbyname('cst').asstring;
{if (scst = '060') or
(scst = '010') or
(scst = '070') then qrpdv.Params.ParamByName('st').asSTRING := 'F'
else
if (scst = '040') or
(scst = '030') then qrpdv.Params.ParamByName('st').asSTRING := 'I'
else
if (scst = '041') or
(scst = '050') or
(scst = '051') or
(scst = '090') then qrpdv.Params.ParamByName('st').asSTRING := 'N'
else
qrpdv.ParamByName('st').asSTRING := 'T';}
qrservidor_tabela.parambyname('QTDE').asfloat := qrpdv_tabela.fieldbyname('QTDE').asfloat;
qrservidor_tabela.parambyname('ECF_CAIXA').asstring := qrpdv_tabela.fieldbyname('ECF_CAIXA').AsString;
qrservidor_tabela.parambyname('CUPOM_ITEM').asstring := qrpdv_tabela.fieldbyname('CUPOM_ITEM').AsString;
qrservidor_tabela.parambyname('MOVIMENTO_ESTOQUE').asfloat := qrpdv_tabela.fieldbyname('MOVIMENTO_ESTOQUE').Asfloat;
qrservidor_tabela.ExecSQL;
except
on E:Exception do
begin
//memo1.lines.add('PDV'+grid.CELL[0,I].ASSTRING+' ERRO - INC - PRODUTO - '+qrservidor.fieldbyname('codproduto').asstring);
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
qrservidor_tabela.sql.Add('select codigo from C000032');
qrservidor.sql.Add('where codigo = '+inttostr(StrToInt(qrpdv.fieldbyname('codproduto').asstring)));
qrservidor_tabela.open;
if qrservidor_tabela.RecordCount = 0 then bflag :=false;
end;
procedure TfrmPrincipal.Button4Click(Sender: TObject);
begin
qrpdv_Tabela.Close;
qrpdv_Tabela.sql.clear;
qrpdv_Tabela.sql.add('select *from c000032');
qrpdv_tabela.open;
if qrpdv_tabela.RecordCount > 0 then
begin
try
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
qrservidor_tabela.sql.add('insert into C000032 (');
qrservidor_tabela.sql.add('CODIGO,');
qrservidor_tabela.sql.add('CODNOTA,');
qrservidor_tabela.sql.add('CODPRODUTO,');
qrservidor_tabela.sql.add('UNITARIO,');
qrservidor_tabela.sql.add('TOTAL,');
//qrservidor.sql.add('PRECO_PROMOCAO,');
qrservidor_tabela.sql.add('DATA,');
//qrservidor.sql.add('FIM_PROMOCAO,');
qrservidor_tabela.sql.add('CST,');
qrservidor_tabela.sql.add('ALIQUOTA,');
qrservidor_tabela.sql.add('SERIAL,');
qrservidor_tabela.sql.add('UNIDADE,');
qrservidor_tabela.sql.add('QTDE,');
qrservidor_tabela.sql.add('ECF_CAIXA,');
qrservidor_tabela.sql.add('CUPOM_ITEM,');
qrservidor_tabela.sql.add('MOVIMENTO_ESTOQUE');
qrservidor_tabela.sql.add(') values (');
qrservidor_tabela.sql.add(':CODIGO,');
qrservidor_tabela.sql.add(':CODNOTA,');
qrservidor_tabela.sql.add(':CODPRODUTO,');
qrservidor_tabela.sql.add(':UNITARIO,');
qrservidor_tabela.sql.add(':TOTAL,');
//qrservidor.sql.add(':PRECO_PROMOCAO,');
qrservidor_tabela.sql.add(':DATA,');
//qrservidor.sql.add(':FIM_PROMOCAO,');
qrservidor_tabela.sql.add(':CST,');
qrservidor_tabela.sql.add(':ALIQUOTA,');
qrservidor_tabela.sql.add(':SERIAL,');
qrservidor_tabela.sql.add(':UNIDADE,');
qrservidor_tabela.sql.add(':QTDE,');
qrservidor_tabela.sql.add(':ECF_CAIXA,');
qrservidor_tabela.sql.add(':CUPOM_ITEM,');
qrservidor_tabela.sql.add(':MOVIMENTO_ESTOQUE');
qrservidor_tabela.sql.add(')');
qrservidor_tabela.parambyname('CODIGO').asstring := qrpdv_tabela.fieldbyname('codigo').asstring;
qrservidor_tabela.parambyname('CODNOTA').asstring := copy(qrpdv_tabela.fieldbyname('codNOTA').asstring,1,15);
qrservidor_tabela.parambyname('CODPRODUTO').asstring := copy(qrpdv_tabela.fieldbyname('CODproduto').asstring,1,6);
qrservidor_tabela.parambyname('UNITARIO').Asfloat := qrpdv_tabela.fieldbyname('uniTARIO').asfloat;
qrservidor_tabela.parambyname('TOTAL').asfloat := qrpdv_tabela.fieldbyname('TOTAL').asfloat;
//qrservidor.parambyname('PRECO_PROMOCAO').asfloat := qrpdv_tabela.fieldbyname('preco_promocao').asfloat;
qrservidor_tabela.parambyname('DATA').asdatetime := qrpdv_tabela.fieldbyname('DATA').asdatetime;
//qrservidor.parambyname('FIM_PROMOCAO').asdatetime := qrpdv_tabela.fieldbyname('fim_promocao').asdatetime;
qrservidor_tabela.parambyname('CST').asstring := qrpdv_tabela.fieldbyname('cst').asstring;
qrservidor_tabela.parambyname('ALIQUOTA').asfloat := qrpdv_tabela.fieldbyname('aliquota').asfloat;
qrservidor_tabela.parambyname('SERIAL').asfloat := 0;
qrservidor_tabela.parambyname('UNIDADE').AsInteger := 0;
//scst := qrservidor_tabela.fieldbyname('cst').asstring;
{if (scst = '060') or
(scst = '010') or
(scst = '070') then qrpdv.Params.ParamByName('st').asSTRING := 'F'
else
if (scst = '040') or
(scst = '030') then qrpdv.Params.ParamByName('st').asSTRING := 'I'
else
if (scst = '041') or
(scst = '050') or
(scst = '051') or
(scst = '090') then qrpdv.Params.ParamByName('st').asSTRING := 'N'
else
qrpdv.ParamByName('st').asSTRING := 'T';}
qrservidor_tabela.parambyname('QTDE').asfloat := qrpdv_tabela.fieldbyname('QTDE').asfloat;
qrservidor_tabela.parambyname('ECF_CAIXA').asstring := qrpdv_tabela.fieldbyname('ECF_CAIXA').AsString;
qrservidor_tabela.parambyname('CUPOM_ITEM').asstring := qrpdv_tabela.fieldbyname('CUPOM_ITEM').AsString;
qrservidor_tabela.parambyname('MOVIMENTO_ESTOQUE').asfloat := qrpdv_tabela.fieldbyname('MOVIMENTO_ESTOQUE').Asfloat;
qrservidor_tabela.ExecSQL;
except
on E:Exception do
begin
//memo1.lines.add('PDV'+grid.CELL[0,I].ASSTRING+' ERRO - INC - PRODUTO - '+qrservidor.fieldbyname('codproduto').asstring);
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
qrservidor_tabela.sql.Add('select codigo from C000032');
qrservidor.sql.Add('where codigo = '+inttostr(StrToInt(qrpdv.fieldbyname('codproduto').asstring)));
qrservidor_tabela.open;
if qrservidor_tabela.RecordCount = 0 then bflag :=false;
end;
Tiago Silva
Curtidas 0
Respostas
Tiago Silva
25/08/2013
ja foi respondido em outro tópico, obrigado
GOSTEI 0
Deivison Melo
25/08/2013
Tópico dado como solucionado!
Atenciosamente,
Emanoel Deivison
Atenciosamente,
Emanoel Deivison
GOSTEI 0