Bom dia pessoal, 

    Estou com um problema no While, é o seguinte tenho um sistema com delphi 
2006 Dbexpress + SQL server.
    Estou conectando no meu banco e fazendo um select em minha tabela de 
pedidos, e jogando para um dbgrid.
    No DblClick do primeiro DB grid ... Eu jogo o registro selecionado para um 
clientDataSet temporario ... que esta ligando a um 2º datasource .. e ligando a 
um 2º datasource.... 

    É para o usuario ir selecionando todas as linhas do que ele precisa do 
Dbgrid1 ....que depois irei jogar em uma tabela definitiva .... 

    Agora vem o problema .... criei o loop, porem ele não esta parando ... 
entra no loop e não sai mais .. alguem pode ajudar ... segue o codigo: 

procedure TfrmApontPedido.DBGrid1DblClick(Sender: TObject);
begin

while cdsTemp.Eof do
     begin
       if (cdsTemp.FieldByName('CodProduto').AsString <> 
dmApontPTK.cdsPedidoCodproduto.Value) Then
       begin //Insert
       cdsTemp.Active := true;
       cdsTemp.Insert;
       cdsTemp.FieldByName('VndPedido').AsInteger := 
dmApontPTK.cdsPedidoVndpedido.Value;
       cdsTemp.FieldByName('Complemento').AsString := 
dmApontPTK.cdsPedidoComplemento.Value;
       cdsTemp.FieldByName('DataPedido').AsDateTime := 
dmApontPTK.cdsPedidoDatapedido.AsDateTime;
       cdsTemp.FieldByName('DataEntrega').AsDateTime := 
dmApontPTK.cdsPedidoDataEntrega.AsDateTime;
       cdsTemp.FieldByName('CodNatOpe').AsInteger := 
dmApontPTK.cdsPedidoCodNatOpe.Value;
       cdsTemp.FieldByName('Situacao').AsInteger := 
dmApontPTK.cdsPedidoSituacao.Value;
       cdsTemp.FieldByName('CodTipoProd').AsInteger := 
dmApontPTK.cdsPedidoCodTipoProd.Value;
       cdsTemp.FieldByName('CodMarca').AsString := 
dmApontPTK.cdsPedidoCodMarca.Value;
       cdsTemp.FieldByName('CodProduto').AsString := 
dmApontPTK.cdsPedidoCodProduto.Value;
       cdsTemp.FieldByName('CodTamanho').AsString := 
dmApontPTK.cdsPedidoCodTamanho.Value;
       cdsTemp.FieldByName('PrecoVenda').AsInteger := 
dmApontPTK.cdsPedidoPrecoVenda.AsInteger;
       cdsTemp.FieldByName('QtdePedida').AsInteger := 
dmApontPTK.cdsPedidoQtdePedida.AsInteger;
       cdsTemp.FieldByName('QtdeEntregue').AsInteger := 
dmApontPTK.cdsPedidoQtdeEntregue.AsInteger;
       cdsTemp.FieldByName('Qtdecancelada').AsInteger := 
dmApontPTK.cdsPedidoQtdecancelada.AsInteger;
       cdsTemp.FieldByName('Usuario').AsString := 
dmApontPTK.cdsPedidoUsuario.Value;
       cdsTemp.FieldByName('DtRec').AsDateTime := 
dmApontPTK.cdsPedidoDtRec.AsDateTime;
       cdsTemp.Next;
       end
       else
         Begin
           ShowMessage('Produto ja cadastrado');
         end;
      end;

end;



Abraços, 

[As partes desta mensagem que não continham texto foram removidas]

Responder a