try
DataSoure1.DataSet.Post;
except
on e:exception do
if pos('key violation',e.message)<>0 then dosomething;0D
//如果关键字重复会执行到上面一句,但是错误信息不一定是'key violation',可能写法不同。最好用错误类型判断
end;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
DataSoure1.DataSet.Post;
except
on e:exception do
if pos('key violation',e.message)<>0 then dosomething;0D
//如果关键字重复会执行到上面一句,但是错误信息不一定是'key violation',可能写法不同。最好用错误类型判断
end;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
(请在Unit的inteface的uses子句中引用ADOInt单元)
var
adoErrors: ADOInt.Errors;
adoError: ADOInt.Error;
i: Integer;
begin
adoErrors := ADOConnection1.Errors;
for i := 0 to adoErrors.Count - 1 do
begin
adoError := adoErrors.Item[i];
ShowMessage(adoError.Description);
end;//for
end;当然,这捕捉的是ADO Provider的错误和异常,对于ADO自身的错误,因为ADO被封装在了ADOExpress中,所以可以采用和BDE类似的方法来捕获错误。