Query cmpre em modo de Edição na 2ª vez q carrega o form

Delphi

30/12/2006

Ola galera! Boa tarde!

Uso um DataModule (dtm) onde fika a ADOConnection ...
Tenho um form que lista todas os clientes (frmClientes)

no frmClientes tm uma Query que ligado com o ADOConnection do dtm, e um dts q esta ligado com um dbgrid....

ta acontecendo uma coisa mto estranha...

na primeira vez q abro o form frmClientes ele fika normal ... c eu clikar em btnNovo e ou btnEditar ele funciona blz ...

agora qdo eu fecho o form frmClientes e abrou o msm novamente ,...

c eu clikar em btnNovo ou btnEditar ele sempre vai mostrar o form mais em modo de edicao so q sempre com um registro especifico geralmente o primeiro .... naum interessa c eu clikar em outra linha do grid e dai clikar em editar ou novo ele sempre vai abrir o form de de adicionar ou editar mais sempre em modo de edicao e sempre com o mesmo registro....

oke sera q tem de errado....

Ps: Alguns detalhes do form (frmClientes)

OnClose:>>
if frmClientes.ModalResult <> mrOK then
  begin
  frmClientes:= nil;
  Action:= caFree;
  end;

xamanda do form (frmClientes ) atraves do frmPrincipal;

if frmClientes = nil then
  begin
  frmClientes:= TfrmClientes.Create(Application);
  frmClientes.qry.Open;
  frmClientes.ShowModal;
  end; 

Clike do btnNovo;

if frmAddClientes = nil then
  begin
  frmAddClientes:= TfrmAddClientes.Create(Application);
  qry.Insert;
  frmAddClientes.ShowModal;
  end;

Clike do btnEditar

if frmAddClientes = nil then
  begin
  frmAddClientes:= TfrmAddClientes.Create(Application);
  qry.Edit;
  frmAddClientes.ShowModal;
  end;



Output

Output

Curtidas 0

Respostas

Ariovaldo

Ariovaldo

30/12/2006

Será que não esta faltando fechar a Qry no close do Form


OnClose:>>
if frmClientes.ModalResult <> mrOK then
begin
[b:1819db5d85]frmClientes.qry.Open;[/b:1819db5d85]
frmClientes:= nil;
Action:= caFree;
end;


GOSTEI 0
Ariovaldo

Ariovaldo

30/12/2006

Será que não esta faltando fechar a Qry no close do Form OnClose:>> if frmClientes.ModalResult <> mrOK then begin [b:d46b077a5c]frmClientes.qry.Open;[/b:d46b077a5c] frmClientes:= nil; Action:= caFree; end;


Desculpe o Correto seria

OnClose:>>
if frmClientes.ModalResult <> mrOK then
begin
[b:d46b077a5c]frmClientes.qry.Close;[/b:d46b077a5c]
frmClientes:= nil;
Action:= caFree;
end;



GOSTEI 0
Output

Output

30/12/2006

Ja havia feito issu kra... mais naum resolveu nda ....

teria alguma outra dica?


GOSTEI 0
Ariovaldo

Ariovaldo

30/12/2006

[quote:077d7295f2=´Rodrigo Miss´]Ja havia feito issu kra... mais naum resolveu nda ....

teria alguma outra dica?[/quote:077d7295f2]

Rodrigo minha unica sugestão é essa. você tem certeza que ao pressionar o Botão seu código esta excutando a rotina, ou seja esta passando pelo código.


GOSTEI 0
Output

Output

30/12/2006

Sim kra....
botao Novo

if frmAddCliente = nil then
  begin
  frmAddCliente:= TfrmAddCliente.Create(Application);
  qry.insert;
  frmAddCliente.ShowModal;
  end;


botal Editar


if frmAddCliente = nil then
  begin
  frmAddCliente:= TfrmAddCliente.Create(Application);
  qry.Edit;
  frmAddCliente.ShowModal;
  end;


ja to fikando extressado .... naum consigo encontrar o erro ...

c puder me ajudar ... fiko agradecido kra.... te +


GOSTEI 0
POSTAR