No meu link de downloads gratuitos HTTP://cc.codegear.com/author/795118 , o 
primeiro exemplo da lista, na aplicação cliente win32, o tratamento de erros é 
feito de forma centralizada no objeto tapplicationevents, usando o evento 
onexception.

Desta forma pode se ter o tratamento de erros de toda a aplicação de forma 
cenralizada, assim é mais fácil de dar manutenção e reutilizar o código.

Abs
BL

From: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of Berdam
Sent: terça-feira, 22 de julho de 2008 08:06
To: delphi-br@yahoogrupos.com.br
Subject: Re: [delphi-br] Tratamento de erros no delphi


Usa try e execpt, veja nesse link aqui

http://www.planetadelphi.com.br/ver_artigo.php?id=125

----------------------------------------------------------
Uberdam Cavaletti
Formado em Tecnologia da Informação - Unoesc - Xxe
Pós-graduado em desenvolvimento Java - Unoesc - Xxe

http://www.curricular.com.br/berdam

Visite
http://passandoveneno.blogspot.com
----------------------------------------------------------

--- Em seg, 21/7/08, Alexsandro <[EMAIL PROTECTED]<mailto:aq.s%40ig.com.br>> 
escreveu:
De: Alexsandro <[EMAIL PROTECTED]<mailto:aq.s%40ig.com.br>>
Assunto: [delphi-br] Tratamento de erros no delphi
Para: delphi-br@yahoogrupos.com.br<mailto:delphi-br%40yahoogrupos.com.br>
Data: Segunda-feira, 21 de Julho de 2008, 20:52

Boa noite pessoal,

Eu nunca fiz tratamentos de erros no delphi, e procurando no forum

encontrei esse código abaixo. Muito interessante, pois queria

mudar aquelas menssagens de erros que é mostrada para o usuário.

Pergunta :

Em que evento eu coloco esses códigos?

Pois tentei colocar no PostError do AdoTable, e ñ da certo.

Na verdade queria colocar o código para atender toda aplicação, tem

como ?

OBS.: Uso o MSSql

procedure ErrorMsg(E: exception);

begin

if e is EDBengineError then

TrataErro(E as edbEngineError)

else

application. showException( E);

end; // procedure ErrorMsg(Sender : TObject; E: exception);

procedure TrataErro(E: eDBEngineError) ;

var nSQLError : integer;

cSQLMessage : string;

cTable : string;

x : integer;

begin

nSQLError := 0;

cSQLMessage := '';

for x:=0 to e.ErrorCount -1 do

if e.errors[x]. NativeError <> 0 then

begin

nSQLError := e.errors[x]. NativeError;

cSQLMessage := e.errors[x]. message;

end;

if nSQLError <> 0 then

begin

cTable := '';

x := pos('table"' ,cSQLMessage) ;

if x > 0 then

begin

cTable := copy(cSQLMessage, x+7,20);

x := pos('"',cTable) ;

if x > 0 then

cTable := copy(cTable, 1,x-1);

end;

case nSQLError of

1 : messagedlg(' Registro já está cadastrado.' ,mtinformation,

[mbok],0);

2292 : messagedlg(' Este registro não pode ser excluído.'+#13+

'Existem outros registros ligados a ele.'+#13+

'Exclua primeiro os regitros filhos.', mtinformation,

[mbok],0);

12203: messagedlg(' Não foi possível a conexão com o banco de

dados.'+#13+

'Verifique se a estaçaõ está ligada à

rede.'+#13+

'Caso esteja, entre em contato com a

Informática.'

,mtinformation, [mbok],0) ;

3114: messagedlg(' Não foi possível a conexão com o banco de

dados.'+#13+

'Verifique se a estação está ligada à

rede.'+#13+

'Caso esteja, entre em contato com a

Informática.'

,mtinformation, [mbok],0) ;

else

showmessage( IntToStr( nSQLError) +' '+cSQLMessage+ ' dfsdvgsd');

end; // if x > 0

end // if nSQLError <> 0

else

messagedlg(' Ocorreu um erro inesperado.' +#13+

'Entre em contato com a Informática.' ,mtinformation,

[mbok],0);

end; // procedure TrataErro(E: eDBEngineError) ;











Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara 
@ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]

CONFIDENTIALITY NOTICE: This email message is for the sole use of the intended 
recipient(s) 
and may contain confidential and privileged information. Any unauthorized 
review, use, 
disclosure or distribution is prohibited. If you are not the intended 
recipient, please 
contact the sender by reply email and destroy all copies of the original 
message.


[As partes desta mensagem que não continham texto foram removidas]

Responder a