连接错误的TADOQuery / TADOConnection行为:覆盖默认值?

时间:2014-04-23 16:52:18

标签: delphi error-handling connection ado

我在使用ADO连接到MS SQL服务器的旧版Delphi应用程序中遇到了问题。

应用程序每1分钟轮询数据库以获取更新。如果连接丢失,并且应用程序最小化到托盘,很长一段时间(例如30分钟),窗口再次最大化时,会包含许多消息对话框,说明"连接错误"。

要更改此行为,我首先查看了一些try...except块,但一无所获。源代码不包含文本"连接错误"或者没有应用程序范围的设置,例如ApplicationEventsException ...

似乎这种行为是在应用程序或组件级别设置的,但我还没有 能够找到方法。

我之前没有德尔菲的经历所以我没有线索。 有谁知道在哪里寻找?

1 个答案:

答案 0 :(得分:0)

(我并不乐意将此作为答案发布,因为我无法准确再现您报告的行为。)

如果您的应用程序中没有代码生成您描述的弹出窗口,则很可能它们来自MDAC层。抑制它们的方法似乎是设置一个TApplication.OnException处理程序。这很简单,如下:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnException := HandleException;
end;

procedure TForm1.HandleException(Sender : TObject;  E : Exception);
begin
  ShowMessage(E.Message);
end;

显然你不会真的想在你的处理程序中使用ShowMessage()因为它只会移动问题,而不是治愈它