如何在无BDE库的机器上,在程序出错前自己捕获错误?(50分)

  • 主题发起人 主题发起人 jw
  • 开始时间 开始时间
J

jw

Unregistered / Unconfirmed
GUEST, unregistred user!
做了一个用到了DB数据库的程序,在无BDE 的机器上运行时会出错,
能否在出错之前自己截取此错误进行处理?
 
为什么不装bde呢?
 
在你的project代码中捕捉错误。
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException := AppException;
end;

procedure TForm1.AppException(Sender: TObject; E: Exception);
begin
if (E is EDBEngineError) then
if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
begin
MessageDlg('Unable to post: Duplicate Customer ID.', mtWarning, [mbOK], 0);
Abort;
end;
end;


 
将用到的数据库控件放到DataModule中
在Project中如下写 //确定DataModlue的单元最先生成
try
Application.CreateForm(DataMoudle1,TDataMoule1);
except
on e do showMessage('....');
exit;
end;
 
在主窗口的CREATE事件中定义:

try
DataBase1.Open;
except
报错,
退出
end;
 
同意Yck
但必需保证在程序编译时,所有的表都必需是关闭的。
 
接受答案了.
 
后退
顶部