Fórum Problemas com TDBXDataSetReader.CopyReaderToClientDataSet Delphi 2010 #385583

02/09/2010

0

Boa noite galera estou aqui novamente pedindo ajuda..
Está acontecendo comigo a seguinte situação, tenho um processo no meu sistema de baixa, que faz uma leitura no servidor DataSnap e me retorna um TDBXReader, onde este através do método TDBXDataSetReader.CopyReaderToClientDataSet seto para meu ClientDataSet na tela e faço .Open.
  if (cdsBx.Active) then    begin    cdsBx.EmptyDataSet;    cdsBx.Close;  end;
  try    proxy := TDSDupRecClient.Create(ConnServer.DBXConnection);    Leitor:= proxy.GetDupRecsToBaixa;    TDBXDataSetReader.CopyReaderToClientDataSet(Leitor,cdsBx);    cdsBx.Open;    if cdsBx.IsEmpty then      ShowMessage('Não à duplicatas para baixa.');  finally    if Assigned(Leitor) then      FreeAndNil(Leitor);    proxy.Free;  end;

até ai tudo certo.. o que acontece e quanto estou nesta mesma tela e mando recarregar a consulta e refazer o processo o erro abaixo ocorre.
---------------------------Debugger Exception Notification---------------------------Project MeuProjeto.exe raised exception class EListError with message 'List index out of bounds (0)'.---------------------------
Já tentei fechar o Cds, dar FreeAndNil, criar denovo , usar outros métodos e nada..
Alguem já pegou algo assim ???Ahh se fecho a tela e acesso novamente carrega certinho a 1 vez e o erro ocorre denovo.
Aguardo sugestões.
Ederson Caldatto

Ederson Caldatto

Responder

Posts

03/09/2010

Marco Salles

eu lembro vagamente que eu ja tive um problema com EmptyDataSet   Não lembro se tinha que ta aberto com OPen para dar o EmptyDataSet ou se tinha que ta fechado para ai sim dar um EmptyDataSet ..   Mas olhando a logica do seu codigo , pq que vc não tira a instrução   if (cdsBx.Active) then     begin     cdsBx.EmptyDataSet;     cdsBx.Close;   end;   e coloque -a na hora de fechar a tela  ... ????   Tb não entendo pq que tem que limpar os dados a cada open se o que carrega de o CdsBx fato é a instrução   TDBXDataSetReader.CopyReaderToClientDataSet(Leitor,cdsBx);   Outra ..  O Método GetDupRecsToBaixa esta funcionando bem .. Ele não tem nada que possa dar esta mensagem de erro 'List index out of bounds (0)'. ????        
Responder

Gostei + 0

03/09/2010

Ederson Caldatto

Eu tentei fazer isto deixar sem o EmptyDataSet..
a unica coisa que não fiz ao menos não lembro , foi deixa sem o close no cds (cds.Close)
vou tentar assim..
no resto está tudo certo o método tudo..
O erro List index out of bounds (0), pelo que posso notar e na hora de atributir os valores ao cds do Reader.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar