Fórum Deleta registro apenas na segunda tentativa. #271678

09/03/2005

0

Boa Tarde,

Estou com dois problemas.

O primeiro é que quando peço para remover um determinado registro no DBGrid pelo DBNavigator ele mostra como removido sempre o primeiro registro do DBGrid ao invés de sumir com o registros selecionado.

O Segundo é que se eu pedir para deletar o registro ele dá como deletado mas quando fecho a janela e abro novamente ele aparece lá novamente, porem quando deleto um registro e depois outro no DBGrid ao fechar e abrir a tela novamente ele removeu o registro da segunda tetativa.

*OBS : É claro que o primeiro problema se repete no segundo, foi observado que ele some com a primeira linha do DBGrid mas na verdade esta passando o código de deleção do registro corrente.

Ai vai o Código que estou usando :


procedure TfrmPedidos.qryPedidoBeforeDelete     (DataSet: TDataSet);
begin
  with updPedido.DeleteSQL do
  begin
    Clear;
    Add(´delete from Pedido where PedidoID = ´ + qryPedidoPedidoID.AsString +´;´);
    Add(´delete from Item_Pedido where PedidoID = ´ + qryPedidoPedidoID.AsString);
  end;
  frmPrincipal.conBanco.StartTransaction;
  frmPrincipal.conBanco.AutoCommit := False;
  try
    qryPedido.ApplyUpdates;
    frmPrincipal.conBanco.Commit;
  except
    frmPrincipal.conBanco.Rollback;
  end;  
  qryPedido.CommitUpdates;
end;


Estou usando o banco de dados MySQL, os componentes Zeos e InfoPower.


Douglasf

Douglasf

Responder

Posts

10/03/2005

Cristiam

Qual versão do Delphi é esse? Pq no Delphi 2005 eu faço assim:
try 
    qryPedido.ExecuteNonQuery();
    qryPedido.ApplyUpdates; 
    frmPrincipal.conBanco.Commit; 
  except 
    frmPrincipal.conBanco.Rollback; 
  end;  



Responder

Gostei + 0

10/03/2005

Emerson Nascimento

inverta: apague primeiro os itens. depois o registro mestre.


Responder

Gostei + 0

10/03/2005

Douglasf

uso delphi 6


Responder

Gostei + 0

10/03/2005

Douglasf

continuo com o mesmo problema.

Ele remove sempre o primeiro da lista, mesmo que eu esteja no ultimo da lista. E só remove apartir da segunda vez, e sempre com este problema de sumir sempre o primeiro registro e quando fecho e abro o form ele realmente removeu o registro selecionado.


Responder

Gostei + 0

10/03/2005

Douglasf

sobe...


Responder

Gostei + 0

10/03/2005

Emerson Nascimento

eu não sei como os componentes Zeos funcionam, mas creio que você poderia ter o código fixo* no updPedido.DeleteSQL e, no OnAfterDelete, somente executar o qryPedido.ApplyUpdates;




*desde que aceite mais de uma instrução SQL.


Responder

Gostei + 0

10/03/2005

Douglasf

Um problema eu já consegui resolver, alterei a propriedade de CachedUpdates para false - pelo menos esta cadastrando.
Mas a parte de não sumir com o registro que esta selecionado ao invés de sumir com o que esta no topo ainda não consegui. O estranho é que quanto tiro a linha qryPedido.ApplyUpdates não tenho mas esse problema.


Responder

Gostei + 0

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

Aceitar