ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Porque bloco TRY EXCEPT nao funciona?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
aleshy
Profissional
Profissional


Registrado: Terça-Feira, 13 de Março de 2007
Mensagens: 627

MensagemEnviada: Sáb Ago 01, 2009 3:48 pm    Assunto: Porque bloco TRY EXCEPT nao funciona? Responder com Citação

Pessoal.

Como ainda nao tenho o conhecimento necessario para ser intitulado PROGRAMADOR, peço a vossa ajuda.

Onde esta o erro neste codigo, pois quando posto um registro onde, por exemplo, o codigo nao pode ser nulo no banco, o bloco nao retorna o erro como deveria.

Código:
procedure TFPadrao2.BtnSalvarClick(Sender: TObject);
begin
if DSMestre.DataSet.State = DsInsert then
 begin
  if Application.MessageBox('Confirma a inclusão?','Minha Aplicacao', mb_iconquestion+mb_yesno) = Idyes then
   try
     DSMestre.DataSet.Post;
     (DSMestre.DataSet as TClientDataSet).ApplyUpdates(0);
   Except
   On E: Exception do ShowMessage(E.Message);
 end;
end;


Quando ocorre um erro nao aparece NADA Sad
_________________
Alex Vieira
Desenvolvedor
Salvador - Ba
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Sáb Ago 01, 2009 10:03 pm    Assunto: Responder com Citação

Amigo o ClientDataSet tem exceçoes silenciosas, pois este foi projetado para trabalhar com datasnap, por isto que a borland criou o reconcile error, onde vc pode pegar os erros que acontece com ele...

eis uma maneira de pegar a exceção:

Código:

procedure TDM.GetError(DataSet: TCustomClientDataSet; E: EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  showmessage('Um Erro Ocorreu ao tentar gravar o registro '+#13+
             'Mensagem Original '+E.Message);
end;



outra maneira seria:
outra que tb retorna nao um erro mas que nao foi possível gravar no banco...

há outras formas, de uma pesquisada no google

Código:


if CDS.ApplyUpdates(0) <> 0 then
   Application.MessageBox(PChar('Não foi possível conluir a transação, devido a um problema ocorrido.'), 'AVISO DOS SISTEMA - Inclusão/Iserção', MB_ICONERROR+MB_Ok)




mas o correto seria utilizar a tela do reconcile error em New... Other.. dialogs reconcile error...

Nestes exemplos sao erros genericos nao refletindo no todo, com o reconcile error vc tem maior controle disto....


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB