Fórum delphi usando query copiar tabela #453171
26/08/2013
0
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
Curtir tópico
+ 0Posts
26/08/2013
Kelson Palharini
procedure TfrmPrincipal.Button4Click(Sender: TObject);
begin
qrpdv_Tabela.Close;
qrpdv_Tabela.sql.clear;
qrpdv_Tabela.sql.add('select *from c000032');
qrpdv_tabela.open;
qrpdv_tabela.first;//Coloca o cursor no primeiro registro
while not qrpdv_tabela.eof do // Vai ler todos os registros até chegar no fim da query, se a query estiver vazia ele nem vai fazer nada
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_tabela.parambyname('DATA').asdatetime := qrpdv_tabela.fieldbyname('DATA').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;
//qrservidor.parambyname('PRECO_PROMOCAO').asfloat := qrpdv_tabela.fieldbyname('preco_promocao').asfloat;
//qrservidor.parambyname('FIM_PROMOCAO').asdatetime := qrpdv_tabela.fieldbyname('fim_promocao').asdatetime;
//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;
qrpdv_tabela.Next; //Passa para o próximo registro
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;
end;
end;
end;Gostei + 0
26/08/2013
Tiago Silva
abraço
Gostei + 0
26/08/2013
Kelson Palharini
procedure TfrmPrincipal.Button4Click(Sender: TObject);
begin
qrpdv_Tabela.Close;
qrpdv_Tabela.sql.clear;
qrpdv_Tabela.sql.add('select *from c000032');
qrpdv_tabela.open;
qrpdv_tabela.first;//Coloca o cursor no primeiro registro
while not qrpdv_tabela.eof do // Vai ler todos os registros até chegar no fim da query, se a query estiver vazia ele nem vai fazer nada
begin
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
//Aqui você faz um select para verificar se a nota já existe no banco, se a query estiver vazia significa que o registro não existe ai sim ele faz o insert
qrservidor_tabela.slq.text := 'Select codnota from C000032 where codigo = ' + qrpdv_Tabela.FieldByName('Codigo').AsString;
if qrservidor_tabela.isEmpty 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_tabela.parambyname('DATA').asdatetime := qrpdv_tabela.fieldbyname('DATA').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;
//qrservidor.parambyname('PRECO_PROMOCAO').asfloat := qrpdv_tabela.fieldbyname('preco_promocao').asfloat;
//qrservidor.parambyname('FIM_PROMOCAO').asdatetime := qrpdv_tabela.fieldbyname('fim_promocao').asdatetime;
//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;
end;
end;
qrpdv_tabela.Next; //Passa para o próximo registro
end;
end;
Gostei + 0
26/08/2013
Kelson Palharini
procedure TfrmPrincipal.Button4Click(Sender: TObject);
begin
qrpdv_Tabela.Close;
qrpdv_Tabela.sql.clear;
qrpdv_Tabela.sql.add('select *from c000032');
qrpdv_tabela.open;
qrpdv_tabela.first;//Coloca o cursor no primeiro registro
while not qrpdv_tabela.eof do // Vai ler todos os registros até chegar no fim da query, se a query estiver vazia ele nem vai fazer nada
begin
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
//Aqui você faz um select para verificar se a nota já existe no banco, se a query estiver vazia significa que o registro não existe ai sim ele faz o insert
qrservidor_tabela.slq.text := 'Select codnota from C000032 where codigo = ' + qrpdv_Tabela.FieldByName('Codigo').AsString;
qrservidor_tabela.Open; // Esqueci de abrir a tabela
if qrservidor_tabela.isEmpty 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_tabela.parambyname('DATA').asdatetime := qrpdv_tabela.fieldbyname('DATA').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;
//qrservidor.parambyname('PRECO_PROMOCAO').asfloat := qrpdv_tabela.fieldbyname('preco_promocao').asfloat;
//qrservidor.parambyname('FIM_PROMOCAO').asdatetime := qrpdv_tabela.fieldbyname('fim_promocao').asdatetime;
//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;
end;
end;
qrpdv_tabela.Next; //Passa para o próximo registro
end;
end;
Gostei + 0
26/08/2013
Tiago Silva
show de bola, obrigado por inserir também os comentarios, pois vai me ajudar a entender.
grande abraço.
Gostei + 0
26/08/2013
Tiago Silva
nao sei se está certo, estou acompanhado a sua linha de raciocinio, e está dando essa mensagem aqui quando clico no botao ~~>> qrpdv : field 'codigo' not found.
sabe o que pode ser?
segue a query abaixo.
procedure TfrmPrincipal.Button5Click(Sender: TObject);
begin
qrpdv_Tabela.Close;
qrpdv_Tabela.sql.clear;
qrpdv_Tabela.sql.add('select *from c000048');
qrpdv_tabela.open;
qrpdv_tabela.first;//Coloca o cursor no primeiro registro
while not qrpdv_tabela.eof do // Vai ler todos os registros até chegar no fim da query, se a query estiver vazia ele nem vai fazer nada
begin
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
//Aqui você faz um select para verificar se a nota já existe no banco, se a query estiver vazia significa que o registro não existe ai sim ele faz o insert
qrservidor_tabela.sql.text := 'Select codcaixa from C000048 where codigo = ' + qrpdv_Tabela.FieldByName('Codigo').AsString;
qrservidor_tabela.Open;
if qrservidor_tabela.isEmpty then
begin
try
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
qrservidor_tabela.sql.add('insert into C000048 (');
qrservidor_tabela.sql.add('CODIGO,');
qrservidor_tabela.sql.add('CODCAIXA,');
qrservidor_tabela.sql.add('MEIO_DINHEIRO,');
qrservidor_tabela.sql.add('MEIO_CHEQUEAV,');
qrservidor_tabela.sql.add('MEIO_CHEQUEAP,');
//qrservidor.sql.add('PRECO_PROMOCAO,');
qrservidor_tabela.sql.add('DATA,');
//qrservidor.sql.add('FIM_PROMOCAO,');
qrservidor_tabela.sql.add('MEIO_CARTAOCRED,');
qrservidor_tabela.sql.add('MEIO_CARTAODEB,');
qrservidor_tabela.sql.add('MEIO_CREDIARIO,');
qrservidor_tabela.sql.add('SUBTOTAL,');
qrservidor_tabela.sql.add('DESCONTO,');
qrservidor_tabela.sql.add('ACRESCIMO,');
qrservidor_tabela.sql.add('TOTAL,');
qrservidor_tabela.sql.add('CUPOM_FISCAL');
qrservidor_tabela.sql.add('numero_cupom_fiscal');
qrservidor_tabela.sql.add('SITUACAO');
qrservidor_tabela.sql.add('atacado_varejo');
qrservidor_tabela.sql.add(') values (');
qrservidor_tabela.sql.add('CODIGO,');
qrservidor_tabela.sql.add('CODCAIXA,');
qrservidor_tabela.sql.add('MEIO_DINHEIRO,');
qrservidor_tabela.sql.add('MEIO_CHEQUEAV,');
qrservidor_tabela.sql.add('MEIO_CHEQUEAP,');
//qrservidor.sql.add('PRECO_PROMOCAO,');
qrservidor_tabela.sql.add('DATA,');
//qrservidor.sql.add('FIM_PROMOCAO,');
qrservidor_tabela.sql.add('MEIO_CARTAOCRED,');
qrservidor_tabela.sql.add('MEIO_CARTAODEB,');
qrservidor_tabela.sql.add('MEIO_CREDIARIO,');
qrservidor_tabela.sql.add('SUBTOTAL,');
qrservidor_tabela.sql.add('DESCONTO,');
qrservidor_tabela.sql.add('ACRESCIMO,');
qrservidor_tabela.sql.add('TOTAL,');
qrservidor_tabela.sql.add('CUPOM_FISCAL');
qrservidor_tabela.sql.add('numero_cupom_fiscal');
qrservidor_tabela.sql.add('SITUACAO');
qrservidor_tabela.sql.add('atacado_varejo');
qrservidor_tabela.sql.add(')');
qrservidor_tabela.parambyname('CODIGO').asstring := qrpdv_tabela.fieldbyname('codigo').asstring;
qrservidor_tabela.parambyname('CODCAIXA').asstring := copy(qrpdv_tabela.fieldbyname('codCAIXA').asstring,1,6);
qrservidor_tabela.parambyname('MEIO_DINHEIRO').asfloat := qrpdv_tabela.fieldbyname('MEIO_DINHEIRO').asfloat;
qrservidor_tabela.parambyname('MEIO_CHEQUEAV').Asfloat := qrpdv_tabela.fieldbyname('MEIO_CHEQUEAV').asfloat;
qrservidor_tabela.parambyname('MEIO_CHEQUEAP').asfloat := qrpdv_tabela.fieldbyname('MEIO_CHEQUEAP').asfloat;
qrservidor_tabela.parambyname('DATA').asdatetime := qrpdv_tabela.fieldbyname('DATA').asdatetime;
qrservidor_tabela.parambyname('MEIO_CARTAOCRED').asfloat := qrpdv_tabela.fieldbyname('MEIO_CARTAOCRED').asfloat;
qrservidor_tabela.parambyname('MEIO_CARTAODEB').asfloat := qrpdv_tabela.fieldbyname('MEIO_CARTAODEB').asfloat;
qrservidor_tabela.parambyname('MEIO_CREDIARIO').asfloat := qrpdv_tabela.fieldbyname('MEIO_CREDIARIO').asfloat;
qrservidor_tabela.parambyname('SUBTOTAL').asfloat := qrpdv_tabela.fieldbyname('SUBTOTAL').asfloat;
qrservidor_tabela.parambyname('DESCONTO').asfloat := qrpdv_tabela.fieldbyname('DESCONTO').asfloat;
qrservidor_tabela.parambyname('ACRESCIMO').asfloat := qrpdv_tabela.fieldbyname('ACRESCIMO').asfloat;
qrservidor_tabela.parambyname('TOTAL').asfloat := qrpdv_tabela.fieldbyname('TOTAL').asfloat;
qrservidor_tabela.parambyname('CUPOM_FISCAL').asInteger := qrpdv_tabela.fieldbyname('CUPOM_FISCAL').AsInteger ;
qrservidor_tabela.parambyname('NUMERO_CUPOM_FISCAL').asstring := qrpdv_tabela.fieldbyname('NUMERO_CUPOM_FISCAL').asstring;
qrservidor_tabela.parambyname('SITUACAO').asinteger := qrpdv_tabela.fieldbyname('SITUACAO').asinteger;
qrservidor_tabela.parambyname('atacado_varejo').asinteger := qrpdv_tabela.fieldbyname('atacado_varejo').asinteger;
//qrservidor.parambyname('PRECO_PROMOCAO').asfloat := qrpdv_tabela.fieldbyname('preco_promocao').asfloat;
//qrservidor.parambyname('FIM_PROMOCAO').asdatetime := qrpdv_tabela.fieldbyname('fim_promocao').asdatetime;
//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('codvendedor').asstring);
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
qrservidor_tabela.sql.Add('select codigo from C000048');
qrservidor.sql.Add('where codigo = '+inttostr(StrToInt(qrpdv.fieldbyname('codigo').asstring)));
qrservidor_tabela.open;
if qrservidor_tabela.RecordCount = 0 then bflag :=false;
end;
end;
end;
qrpdv_tabela.Next; //Passa para o próximo registro
end;
end;
Gostei + 0
27/08/2013
Tiago Silva
abraço
Gostei + 0
27/08/2013
Kelson Palharini
Gostei + 0
27/08/2013
Kelson Palharini
Ou provavelmente está vazia.
Gostei + 0
27/08/2013
Tiago Silva
tem esses campos aqui no bd
qrservidor_tabela.close;
qrservidor_tabela.sql.clear;
qrservidor_tabela.sql.add('insert into C000048 (');
qrservidor_tabela.sql.add('CODIGO,');
qrservidor_tabela.sql.add('CODCAIXA,');
qrservidor_tabela.sql.add('MEIO_DINHEIRO,');
qrservidor_tabela.sql.add('MEIO_CHEQUEAV,');
qrservidor_tabela.sql.add('MEIO_CHEQUEAP,');
//qrservidor.sql.add('PRECO_PROMOCAO,');
qrservidor_tabela.sql.add('DATA,');
//qrservidor.sql.add('FIM_PROMOCAO,');
qrservidor_tabela.sql.add('MEIO_CARTAOCRED,');
qrservidor_tabela.sql.add('MEIO_CARTAODEB,');
qrservidor_tabela.sql.add('MEIO_CREDIARIO,');
qrservidor_tabela.sql.add('SUBTOTAL,');
qrservidor_tabela.sql.add('DESCONTO,');
qrservidor_tabela.sql.add('ACRESCIMO,');
qrservidor_tabela.sql.add('TOTAL,');
qrservidor_tabela.sql.add('CUPOM_FISCAL');
qrservidor_tabela.sql.add('numero_cupom_fiscal');
qrservidor_tabela.sql.add('SITUACAO');
qrservidor_tabela.sql.add('atacado_varejo');
nas duas tabelas, tem esse campo com a mesma estrura, e na tabela do pdv tem venda, ou seja está cheia todos os campos, agora na tabela servidor está vazia, pois vai ser o primeiro insert.
Gostei + 0
27/08/2013
Kelson Palharini
Você abre a qrpdv_Tabela com o seguinte comando:
qrpdv_Tabela.sql.add('select *from c000048');
qrpdv_Tabela.open;
Entendendo que você ao usar * em uma consulta seleciona todos os campos da tabela, se existir o campo código ele vai aparecer na query. Depois você vem verificar se o registro já consta na qrservidor_tabela usando o seguinte comando:
qrservidor_tabela.sql.text := 'Select codcaixa from C000048 where codigo = ' + qrpdv_Tabela.FieldByName('Codigo').AsString;
Sendo que nesse comando você já utiliza a leitura do primeiro registro que vem na qrpdv_Tabela no campo Codigo nessa parte qrpdv_Tabela.FieldByName('Codigo').AsString; . Com certeza ao chegar nessa linha que o compilador gera esse erro que você nos passou qrpdv : field 'codigo' not found.
Ai chega o que te falei nesse momento ele vai te dar essa mensagem somente quando:
1º O select está direcionado para a tabela errada e não existe esse campo nessa tabela;
2º Não houver retorno de dados ao executar o comando SQL;
3º Ou o campo chave Codigo está com outro nome na tabela, ou não existir;
Agora algumas perguntas essa tabela C000048 é fixa ou temporária? Se for fixa você tentou executar esse sql 'select *from c000048' direto do seu SGDB ?
Senão for fixa já tentou despejar esse sql em um DBGrid e ver quais as informações que o Select lhe retorna pra ver se esse campo realmente existe?
O banco que você está trabalhando é o correto? Você as vezes criou o campo em um banco de dados e está usando outro ao debugar no delphi;
Gostei + 0
27/08/2013
Tiago Silva
show table c000048;
ai ele me deu os campos da tabela, e la possui o campo 'codigo'
ai depois dei um select *from c00048;
e ele me retornou com os valores da venda,
obs: isso na tabela do pdv = qrpdv
Gostei + 0
27/08/2013
Tiago Silva
show table c000048;
ai ele me deu os campos da tabela, e la possui o campo 'codigo'
ai depois dei um select *from c00048;
e ele me retornou com os valores da venda,
obs: isso na tabela do pdv = qrpdv
agora no meu banco do servidor = qrservidor
pelo firebird sql tool
fiz um show table c000048;
e ele retornou com os campos e la tem o campo 'codigo'
porem quando dei um select *from c000048 ou select codigo from c000048; nao mostrou nada,
sendo que eu fiz um insert pelo ibexpert , o que pode ser? abraço
Gostei + 0
27/08/2013
Kelson Palharini
Qualquer coisa dê um toque.
Gostei + 0
27/08/2013
Tiago Silva
vou fazer campo a campo
ex: vou dar um select co campo código e só vou inserir o campo codigo, ai se funcionar, vou fazendo os demais campos, passo a passo...
vou fazer aqui e posto o resultado , abraço
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)