Tratar Erro de MSG do ORACLE
Gostaria de Saber como posso tratar um erro acontecido no oracle e eu mesmo filtar este erro na minha aplicação e traduzí-lo. Tem algun exemplos na Internet, mas todos usando a conexão com BDE. utilizo o ADO(EOleException) é a classe da excessão.
Agradeço desde já.
Agradeço desde já.
Cabal
Curtidas 0
Respostas
Motta
15/02/2006
Eu capturo a msg de erro e faça o tratamento usando s Function Pos
Que tipo de erro retorna ? Violação de constraint ? Triggers ?
Algo assim :
Que tipo de erro retorna ? Violação de constraint ? Triggers ?
Algo assim :
var s:string; begin ... exception one:exception do begin s := e.message; if Pos(´chk_valor´,s) > 0 then ShowMessage(´Valor Inválido´); if Pos(´ora-00001´,s) > 0 then ShowMessage(´Chave duplicada´); // etc end; end;
GOSTEI 0
Cabal
15/02/2006
Não estou conseguindo entender este trecho...
Devo inserir um TRY cert?
Fiz assim, mas ocorreu um erro:
[Error] Form_Principal.pas(81): Missing operator or semicolon
Ñ entendi o ONE e o EXCEPTION...
Procedure tform1.teste;
var
s:string;
e:Exception;
begin
TRY
Adoconnection1.Open;
except
exception
one:exception do
begin
s := e.message;
if Pos(´chk_valor´,s) > 0 then
ShowMessage(´Valor Inválido´);
if Pos(´ORA-01017:´,s) > 0 then
ShowMessage(´Chave duplicada´);
// etc
end;
end;
Valeu amigo Obrigadão....
Devo inserir um TRY cert?
Fiz assim, mas ocorreu um erro:
[Error] Form_Principal.pas(81): Missing operator or semicolon
Ñ entendi o ONE e o EXCEPTION...
Procedure tform1.teste;
var
s:string;
e:Exception;
begin
TRY
Adoconnection1.Open;
except
exception
one:exception do
begin
s := e.message;
if Pos(´chk_valor´,s) > 0 then
ShowMessage(´Valor Inválido´);
if Pos(´ORA-01017:´,s) > 0 then
ShowMessage(´Chave duplicada´);
// etc
end;
end;
Valeu amigo Obrigadão....
GOSTEI 0
Motta
15/02/2006
foi mal :
var s:string; try ... // faz alguma operação no banco exception on e:exception do // <<==== begin s := e.message; if Pos(´chk_valor´,s) > 0 then ShowMessage(´Valor Inválido´); if Pos(´ora-00001´,s) > 0 then ShowMessage(´Chave duplicada´); // etc end; end;
GOSTEI 0