数据表中主键为Null时的错误如何捕捉

sirliner 2003-08-23 11:19:24
主键重复时的错误值:eKeyViol=9729
可以在PostError中用
(E as EDBEngineError).errors[0].Errorcode=eKeyViol 来捕捉.

主键为Null时的错误值是多少.

哪位大虾知道,烦请回复.
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
karach 2003-08-24
  • 打赏
  • 举报
回复
nil
madyak 2003-08-24
  • 打赏
  • 举报
回复
要取得错误的原生码,那么我们必须从EDBEngineError这个例外对象中取得。但是由ADO产生例外对象并不是从EDBEngineError继承下来的。
ADOExpress组件在发生错误时产生的例外对象并不像BDE/IDAPI一样是EDBEngineError对象,因此我们无法像BDE/IDAPI的应用程序一样从EDBEngineError取得原生的错误代码。如果你检查封装ADOExpress组件的ADODB程序单元,也会发现ADO的错误是由EADOError类别封装的。
{ Errors }
EADOError = class(EDatabaseError );

请参考下面:
procedure TForm4.ADODataSet1PostError(DataSet: TDataSet; E:
EDatabaseError; var Action: TDataAction);
var
adoErrors : Errors;
adoError : Error;
iCount : Integer;
begin
/ /开始处理ADO的Errors对象
adoErrors := ADOConnection1.Errors;
for iCount := 0 to adoErrors.Count - 1 do // Iterate
begin
adoError := adoErrors.Item[iCount];
lbADOErrors.Items.Add('Error Number : ' + IntToStr(adoError.Number));
lbADOErrors.Items.Add('Error Source : ' + adoError.Source);
lbADOErrors.Items.Add('Error Description : ' + adoError.Description);
lbADOErrors.Items.Add('Error HelpFile : ' + adoError.HelpFile);
lbADOErrors.Items.Add('Error SQLState : ' + adoError.SQLState);
lbADOErrors.Items.Add('Error NativeError : ' +
IntToStr(adoError.NativeError));
end ; // for
end ;

sirliner 2003-08-24
  • 打赏
  • 举报
回复
我的数据控件为Adoquery,错误代码应该如何捕捉
jxc163 2003-08-23
  • 打赏
  • 举报
回复
学习……
你干吗不用程序来做一下检测呢?
DWGZ 2003-08-23
  • 打赏
  • 举报
回复
13059

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧