我在使用ADO连接到MS SQL服务器的旧版Delphi应用程序中遇到了问题。
应用程序每1分钟轮询数据库以获取更新。如果连接丢失,并且应用程序最小化到托盘,很长一段时间(例如30分钟),窗口再次最大化时,会包含许多消息对话框,说明"连接错误"。
要更改此行为,我首先查看了一些try...except
块,但一无所获。源代码不包含文本"连接错误"或者没有应用程序范围的设置,例如ApplicationEventsException ...
似乎这种行为是在应用程序或组件级别设置的,但我还没有 能够找到方法。
我之前没有德尔菲的经历所以我没有线索。 有谁知道在哪里寻找?
答案 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()因为它只会移动问题,而不是治愈它