[firebase-br] Consulta SQL com Parâmetros

Reginaldo Martins Costa rmc1701e em ig.com.br
Qua Ago 5 23:41:13 -03 2009


Amigos,

Estou desenvolvendo uma aplicação em DELPHI 2006 utilizando:
TSQLConnection ==> TSQLQuery -> TDataSetProvider -> TClientDataSet ->
TDataSource

Ocorre que as consultas SQL que possuem parâmetros só retornam o resultado
da primeira vez que eu consulto.

Exemplo: tenho a seguinte SQL:
SELECT * FROM usuario usu
WHERE usu.usriCdUsuario = :CdUsuario
AND usu.usriCdSenha = :CdSenha
No Delphi, o código está da seguinte forma:
  with dmdsgipri.qryUsuarioLog do begin
      Close;
      dmdsgipri.cdsUsuarioLog.Close;
      ParamByName('CdUsuario').AsString := edtUsuario.Text;
      ParamByName('CdSenha').AsString := edtSenha.Text;
      Open;
      dmdsgipri.cdsUsuarioLog.Active := true;
      if dmdsgipri.cdsUsuarioLog.RecordCount = 1 then
        lAcesso := true
      else
      begin
        MessageDlg('Usuário não Cadastrado',mtError,[mbOk],0);
        lAcesso := false;
      end;
    end;
Eu efetuo o login com o usuário "aaa" senha "1". Se eu efetuo o logon e
tento novo logn com o usuário "A2" senha "2", o conteúdo no cdsUsuarioLog
ainda é o resultado da primeira consulta (usuário "aaa" senha "1").

Fiz alguns testes processando o qryUsuarioLog  e exibindo os campos com
"showmessage" e aparentemente a segunda consulta retorna o resultado
correto. O problema é no ClientDataSet.

Alguem já passou por este tipo de problema?

Agradeço qualquer dica.

Reginaldo.



Mais detalhes sobre a lista de discussão lista