Fórum ApplicationEvents não pega nenhuma exceção #397128

11/03/2011

0

Bom, coloquei o ApplicationEvents no meu form principal e coloquei apenas o seguinte codigo para testes:
Showmessage(E.message); 
porém, não aconteçe nada, tentei até debugar a aplicação e nem passar por esta linha de comando.
Ronaldo Lanhellas

Ronaldo Lanhellas

Responder

Posts

11/03/2011

Rodrigo Mattos

amigo não entendi?
Responder

Gostei + 0

11/03/2011

Ronaldo Lanhellas


  eu tenho um trigger que faz a redução do estoque de produtos, porém antes de reduzir ele verifica se tem produto no estoque ! se não tiver o produto ele faz:
raise exc_qualquer  -chama uma exceção

e estou tentando pegar esta exception com o ApplicationEvents e não consigo
Responder

Gostei + 0

11/03/2011

Rodrigo Mattos

amigo que componente de conexão você está utilizando?
Responder

Gostei + 0

13/03/2011

Ronaldo Lanhellas

  Estou usando o TSQLCOnnection (DBX)
Responder

Gostei + 0

14/03/2011

Ronaldo Lanhellas

  ninguem pode me ajudar??
Responder

Gostei + 0

15/03/2011

Marco Salles


  eu tenho um trigger que faz a redução do estoque de produtos, porém antes de reduzir ele verifica se tem produto no estoque ! se não tiver o produto ele faz:
raise exc_qualquer  -chama uma exceção

e estou tentando pegar esta exception com o ApplicationEvents e não consigo
  Vc so vai se comunicar com o banco dando um applyupdates   mas mesmo que vc execute um applyUpdates , se ocorrer um erro e o regitrso não poder ser salvo , o clientdataset não propaga as exceçoes   para testa programae o evento onreconcilleError do clientdataset ou tente instruçoes como   if clientdataset.applyupdates(0) > 0 then  showmessage('Houve um erro')   Pode tb utilizar o tdatasetprovider para capturar esta mensagem de erro . use o  evento onUpdateERROR do tdasetProvider      
Responder

Gostei + 0

16/03/2011

Ronaldo Lanhellas

ta mais ... ele não pode salvar se ocorrer algum erro, então eu posso fazer assim:


if cds.ApplyUpdates(0) > 0 thenAbort; 

????
Responder

Gostei + 0

16/03/2011

Marco Salles

ta mais ... ele não pode salvar se ocorrer algum erro, então eu posso fazer assim: if cds.ApplyUpdates(0) > 0 then Abort;  ????
  .. Mas o detalhe que ele mesmo "aborta" o processo Veja se vc tiver salvando 100 Registro , se um deles tiver alguma coisa errada , ele nao commita nenhum É um processo de Transação digamos assim RAD    
Responder

Gostei + 0

17/03/2011

Ronaldo Lanhellas


  Certo, percebi que ele não "commita" se tiver algum erro, porém percebi que você deve dar um "refresh total" (quando digo refresh total, quero dizer que você deve fechar a conexão com o banco totalmente, e abrir novamente) para que mostre os registros reais sem aquele que não foi inserido.
Já com abort ele mostra na hora os registros reais...
Ex: 
Cadastro o produto MEIA, porém da algum erro e ele não commita. 
Responder

Gostei + 0

17/03/2011

Marco Salles

Certo, percebi que ele não "commita" se tiver algum erro, porém percebi que você deve dar um "refresh total" (quando digo refresh total, quero dizer que você deve fechar a conexão com o banco totalmente, e abrir novamente) para que mostre os registros reais sem aquele que não foi inserido.
Já com abort ele mostra na hora os registros reais...
Ex: 
Cadastro o produto MEIA, porém da algum erro e ele não commita. 
 
Já com abort ele mostra na hora os registros reais...
Não . Não mostra. Ele so vai mostrar os registros reais se vc der um refresh ou um close open Pode ser que no seu codigo um abort gera uma exceção e no tratamento desta exceção incondicionalmente vc dar close open /ou Refresh o que esta lhe causando esta falsa impressão
Responder

Gostei + 0

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

Aceitar