我在使用ADO連接到MS SQL服務器的傳統Delphi應用程序中遇到問題。連接錯誤時的TADOQuery/TADOConnection行爲:覆蓋默認值?
應用程序每1分鐘輪詢一次數據庫以獲取更新。如果連接丟失,並且應用程序長時間(例如30分鐘)最小化到托盤,則窗口在再次最大化時包含許多消息對話框,表明「連接錯誤」。
要改變這種行爲,我首先看了一些try...except
塊,但什麼也沒找到。源代碼不包含文本「連接錯誤」,也沒有應用程序範圍的設置,例如ApplicationEventsException ...
似乎這種行爲是在應用程序或組件級別設置的,但我沒有 已經能夠找到如何。
我沒有德爾福的經驗,所以我沒有線索。 有誰知道在哪裏尋找?
可能錯誤消息是來自MDAC層。你有沒有嘗試在你的TAdoConnection的OnInfoMessage中放置一個斷點,以查看當連接丟失時觸發事件?另請嘗試查看連接的錯誤集合。 – MartynA
@MartynA OnInfoMessage事件沒有處理程序。插入一個空處理程序並在其上設置斷點後,它不會觸發。我也嘗試設置'Application.OnException'事件處理程序,但_before_它激發我的測試中仍然出現一個對話框,提示「連接錯誤」或「用戶X登錄失敗」。 – AunAun
不確定我關注「插入一個空處理程序」 - 你必須在其中放入一些代碼,否則當你保存該單元時它將被簡單地刪除,所以永遠不會被調用。 – MartynA