这是我的用D6+ADO 连MS SQL SERVER2000时用的异常处理方法,希望对你有用,
错误号可以在SERVER的HELP的中可以找到。
procedure TData.ADOPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
case adocnt.Errors.Item[0].NativeError of
2627,2601:application.messagebox('编号重复,请更改后重试!','提示',mb_ok+mb_iconinformation);
515,1010:application.messagebox('请将资料填写完整!','提示',mb_ok+mb_iconinformation);
else
application.MessageBox(pchar(format('保存数据时发生错误!操作终止!'#13#13'错误代码:%d'#13'错误消息:%s',
[adocnt.Errors.Item[0].NativeError,ADOCnt.Errors.Item[0].Get_Description])),
'提示',mb_ok+mb_iconinformation);
end;
action:=daabort;
end;