B
brainpower
Unregistered / Unconfirmed
GUEST, unregistred user!
我写一个自定义MyAdoQuery控件,继承AdoQuery,想重载其posterror
我是想将的错误处理放在我的MyAdoQuery控件中,那么我就不必每个
query都写一次相同的代码了。因为不同的表其约束大都一样的,如
主键外键等。
现在的难题是我找不到posterror 原始参数列表,重载不了
我的代码如下:
procedure TDataM.Q_ClientPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
Var error_set:Errors;
error_obj:Error;
iCount:integer;
begin
error_set:=SQLConnectCommon.Errors;
for iCount :=0 to Error_set.Count-1 do
Begin
error_obj:=error_set.Item[iCount];
Case Error_obj.NativeError of
2627:Begin
ShowMessage('代号不可重复,请注意');
Abort;
End;
515:begin
ShowMessage('不能为空值,请输入一个值');
Abort;
End;
32:Begin
ShowMessage('其它用户已改变了这条记录的值,请先刷新,再修改');
Abort;
End;
1023:Begin
ShowMessage('不能插入空行,请注意');
Abort;
End
else
ShowMessage('数据有错,不能更新:'+inttostr(Error_obj.NativeError)+ERROR_OBJ.Description);
Abort;
End
end;
end;
我是想将的错误处理放在我的MyAdoQuery控件中,那么我就不必每个
query都写一次相同的代码了。因为不同的表其约束大都一样的,如
主键外键等。
现在的难题是我找不到posterror 原始参数列表,重载不了
我的代码如下:
procedure TDataM.Q_ClientPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
Var error_set:Errors;
error_obj:Error;
iCount:integer;
begin
error_set:=SQLConnectCommon.Errors;
for iCount :=0 to Error_set.Count-1 do
Begin
error_obj:=error_set.Item[iCount];
Case Error_obj.NativeError of
2627:Begin
ShowMessage('代号不可重复,请注意');
Abort;
End;
515:begin
ShowMessage('不能为空值,请输入一个值');
Abort;
End;
32:Begin
ShowMessage('其它用户已改变了这条记录的值,请先刷新,再修改');
Abort;
End;
1023:Begin
ShowMessage('不能插入空行,请注意');
Abort;
End
else
ShowMessage('数据有错,不能更新:'+inttostr(Error_obj.NativeError)+ERROR_OBJ.Description);
Abort;
End
end;
end;