OnPostError - ClientDataSet
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:
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
Curtidas 0
Respostas
Nilson Junior
30/09/2003
So mais uma coisa udo DBExpress
GOSTEI 0
Everton
30/09/2003
Tente assim:
begin
if Pos(´KEY VIOLATION´,E.Message) > 0 then
begin
ShowMessage(´Chave duplicada!´);
Action := daAbort;
end;
end;
begin
if Pos(´KEY VIOLATION´,E.Message) > 0 then
begin
ShowMessage(´Chave duplicada!´);
Action := daAbort;
end;
end;
GOSTEI 0
Adilsond
30/09/2003
Com ADO eu pego o erro da seguinte maneira:
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.
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.
GOSTEI 0