我正在使用DAO訪問SQL Server的應用程序的更新。我知道,但現在讓我們考慮一下DAO的需求。網絡重新連接後SQL-Server連接失敗
應用程序一直在系統托盤中運行,並定期執行SQL服務器操作。由於它一直在運行,並且應用程序的用戶將在筆記本電腦上並在建築物之間轉換,我已將其設計爲在活動狀態和非活動狀態之間悄悄轉換。當數據庫連接成功時恢復運行。
我有一個最後一個問題,我釋放此更新之前:當連接被刪除,然後重新建立,SQL操作失敗。只有在我的連接字符串中指定了主機名時,纔會發生這種情況。如果我使用IP,一切都很好(但我需要能夠使用主機名)。
這裏是行爲:
1)一切工作。良好的網絡連接,數據庫操作都很好。
2)連接丟失。任務欄圖標上出現小'x',沒有其他東西。一切都好。
3)重新連接。
在第3步,當我運行第一個查詢時,出現'ODBC - 調用失敗'錯誤。有趣的是,數據庫首先打開時沒有錯誤。
如果我跳過第1步,並在連接斷開時啓動應用程序,則在步驟3(主機名或不是)中,一切工作正常。
我希望這是DAO引擎在第一次連接後緩存DNS條目的問題,儘管目標IP不會改變,所以我不確定這一點。我試圖刷新窗口的DNS緩存(從cmd提示符)不起作用。甚至當我使用本地主機名與本地SQL服務器進行開發時,也會發生相同的行爲。 127.0.0.1沒有問題。
我也嘗試CoUninitialize()活動時間之間的DAO接口,但我有麻煩讓這個工作。如果有人認爲這會有所幫助,我會加倍努力。
此行爲是在Windows XP或任何東西一樣7.你有
謝謝!
編輯:我應該提到 - 我關閉嘗試之間的數據庫連接,然後用
m_pDb = m_pDaoEngine->OpenDatabase()