在delphi 中
用adotadaset访问数据库
_________________________________________________________________________
Project NewHelpKsf.exe raised excption class EOLeException with message
'ORA-00001:违反唯一约束条件(KSFUSER.SYS_C002723)'.Process stopped.Use
Step or Run to continue.
_________________________________________________________________________
这个错误怎么捕获?
换成自己定义的错误.
用adotadaset访问数据库
_________________________________________________________________________
Project NewHelpKsf.exe raised excption class EOLeException with message
'ORA-00001:违反唯一约束条件(KSFUSER.SYS_C002723)'.Process stopped.Use
Step or Run to continue.
_________________________________________________________________________
这个错误怎么捕获?
换成自己定义的错误.
你这样试试!
try
……
except
on E: Exception do
if e.Message = 'ORA-00001:违反唯一约束条件(KSFUSER.SYS_C002723)' then
……
action := daabort;
application.MessageBox('保存出错!!','提示',0);
ADODataSet.Cancel();
try
ADODataSet.UpdateBatch();
except
on E:Exception DO
if e.Message = 'ORA-00001:违反唯一约束条件(KSFUSER.SYS_C002723)' then
showmessage('input again!');
end;但是程序跟踪的结果显示,在进入except之前就出现如前所述的错误,
很困惑我。我仅仅想屏蔽这个错误,给出自己的提示。
谢谢!
procedure TFormTransctionDefine.BitBtnSaveClick(Sender: TObject);
begin
if dsTransction.State in [dsInsert] then
begin
dsTransction.UpdateBatch();
end;
end;procedure TFormTransctionDefine.dsTransctionPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
action :=daabort;
application.MessageBox('保存出错','提示',0);
dsTransction.Cancel;
end;但是出错时程序走不进来。
是不是还有什么缺陷,请指正!谢谢!
~~~~~~~~~~~~~~~~~~~~~~~~~~
证明错误并不是ADODataSet.UpdateBatch();发出的
将你的dataset修改/插入等操作全部写入try...except最好用error的id判断,而不是message
是写oracle的过程么?
我是想在delphi里控制
ADODataSet.Append;
之后
ADODataSet.UpdateBatch();
而且程序是运行到这里出的错。
用 readersm68(地主) 的方法,以上两种都好用。谢谢!分少,
readersm68(地主) :40
bluecyclone(永远的小学生) :30
qixin000(小齐) :30firetoucher(风焱) 在另外一个给吧