我写一个自定义MyAdoQuery控件,继承AdoQuery,想重载其posterror(200分)

  • 主题发起人 主题发起人 brainpower
  • 开始时间 开始时间
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;
 
现在的难题是我找不到posterror 原始参数列表,重载不了
------
请教了一个高手,他说做不了
真的做不了吗?
 
哪位有关于控件开发的书?
我这里有一本 <<DELPHI5开发人员指南>>里讲得有点少。
 
我有一个感觉,就是这里本来是一个技术交流的地方,可是由于众多人来,就变成了一个
找答案,而非技术交流提供的地方,难怪高手们都躲起来了
 
我认为是做不到的,因为tdataset类把产生这个事件的过程放在了单元的私有部分,没有
办法重载,所以根本不可能重载这个事件。
 
现在我明白了,这个问题并不是那么简单,
而且这种方式也不是最好。得用另外的技巧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部