Fórum OnPostError - ClientDataSet #185365

30/09/2003

0

Tratei o ´onposterror´ assim

Pode-se usar somente o OnPosterror ou é necessário usar o OnRoconcileError

Uso Delphi6 com FireBird
var
Action: TDataAction);

begin

ErroMens := E.Message;

if UPPERCASE(COPY(ErroMens,1,13)) = ´KEY VIOLATION´ then begin
Action := daAbort;
ShowMessage(´Chave duplicada!´);
end;

TBM tentei assim:

var
Action: TDataAction);

begin

ErroMens := E.Message;

if COPY(ErroMens,1,34) = ´violation of PRIMARY or UNIQUE KEY´
KEY VIOLATION´ then begin
Action := daAbort;
ShowMessage(´Chave duplicada!´);
end;



mas está ainda dando o seguinte erro

Agraeço a todos antecipadamente, estou muito contente com a atenção deste Forum..... Afinal estou começando... estou vindo do Clipper


:oops:


Nilson Junior

Nilson Junior

Responder

Posts

30/09/2003

Nilson Junior

So mais uma coisa udo DBExpress


Responder

Gostei + 0

30/09/2003

Everton

Tente assim:

begin
if Pos(´KEY VIOLATION´,E.Message) > 0 then
begin
ShowMessage(´Chave duplicada!´);
Action := daAbort;
end;
end;


Responder

Gostei + 0

01/10/2003

Adilsond

Com ADO eu pego o erro da seguinte maneira:

procedure TdtmPrincipal.cdsUsuarioPostError(DataSet: TDataSet; 
E: EDatabaseError; var Action: TDataAction); 
begin 
with EDBClient(E) do 
begin 
if ErrorCode = 9729 then 
MessageDlg(´Usuário já cadastrado.´, mtError, [mbOK], 0) 
else 
MessageDlg(Message, mtError, [mbOK], 0); 
end; 
Action := daAbort; 
end;


Para descobrir qual o exception( no meu caso EDBClient), execute o programa e deixe dar a mensagem do debug, nela consta o tipo do exception. Altere-o se necessário, execute e verifique através do debug qual o valor do ErrorCode.


Responder

Gostei + 0

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

Aceitar