Senhores bom dia, gostaria de pedir o auxílio dos senhores para a
questão do tratamento de error que o ADO retorna para o Delphi, estou
usando uma validação no evento OnUpdateError, porém não estou
tendo sucesso, pois vários erros são detectados e a minha
validação está falha. Sei que meu código está incompleto,
pois não está trabalhando corretamente a exceção retornada.

Eis o código:procedure TClasseBasica.prvBasicoUpdateError(Sender:
TObject;  DataSet:
TCustomClientDataSet; E: EUpdateError; UpdateKind: TUpdateKind;
var Response: TResolverResponse);
var
I: Integer;
NomeCampo : string;
mensagem  : string;
begin
if e.ErrorCode = -2147217873 then
begin
for I := 0 to qryBasica.Fields.Count - 1 do
begin
if StrUtils.ContainsStr(e.Message,DataSet.Fields[i].FullName)  then
begin
NomeCampo := qryBasica.Fields[i].DisplayLabel;
Break;
end;
end;
mensagem := 'O campo +NomeCampo+'> não pode ter seu valor duplicado
na     base!'+#13#10+
   'Por favor altere o valor fornecido para esse campo.';
raise Exception.Create(mensagem);
end
else
raise Exception.Create(E.OriginalException.Message);
end;


Minha intenção era de filtrar os erros do tipo: Índice único,
campo não pode ser null, etc...

Minha dúvida está em como detectar esses erros, quais são e
como trabalhar
corretamente esses códigos retornados pelo ADO.

Se alguém puder me ajudar ficarei muito grato!



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

Responder a