2013-11-04 83 views
0

我見過有關使用PHP和ADO訪問ODBC數據庫的其他文章,但我不認爲我的問題已被問到PHP之外。我最近接管了一個項目,其中一個觸摸屏界面運行Windows XP,並使用一些與Java非常相似的專有歐洲編程語言來與PLC和機器接口。如果不關閉ODBC連接會發生什麼?

我們定期記錄來自各種傳感器的信息,然後使用該程序打開到ODBC數據庫的連接並存儲記錄。我的任務是跟蹤一個錯誤,在這個錯誤中,數據只是一次停止記錄幾天,沒有任何明顯的原因,我相信它與ODBC數據庫(可修復)或Windows和Windows之間的版本不兼容有關PLC(不可修復)。所以我先拍攝了可修復的照片。

程序創建一個新的ActiveXObject並使用ADO打開到數據庫的連接,將命令串在一起,執行它,然後關閉連接。它每次創建記錄都會執行所有這些操作,並且我試圖找出原始程序員是否有這樣做的原因,而不是創建adodb.Connection,打開它,然後爲每個數據記錄創建一個事務只有當用戶非常喜歡這個程序時才能寫和關閉它。

我能想到的唯一的事情是,他們擔心如果觸摸屏在斷開連接時斷電會發生什麼情況。那會做什麼?沒有人真正瞭解我們正在使用的這種幾乎是Java語言的任何內容,所以我無法確定程序關閉時ActiveXObjects會發生什麼情況。像這樣的事情會導致這些爲期幾天的錄製失誤,還是我完全吠叫錯了樹?

回答

1

每次需要時打開和關閉連接通常會被認爲是更安全和網絡最緊張的方法。唯一一次效率低下的情況是,在數據庫中進行多次呼叫時,兩者之間沒有太多時間間隔。

有時不建議打開數據庫連接。在使用基於文件的數據庫(如Visual Foxpro或MS Access)的情況下,數據庫文件實際上可能會因被刪除的網絡連接而損壞,儘管我通常認爲發生這種情況時連接在寫入期間需要丟棄某種類型的。

您是否有任何錯誤控制或調試選項?每次嘗試訪問數據庫時,您能否寫入文本文件?

我真的不認爲這裏使用的語言過於重要,因爲您使用的是ADO,ODBC,而且我假設某種標準數據庫格式。失敗的原因可能在於這些技術之一,除非在代碼中某處出現錯誤,導致數據記錄例程無法啓動。

相關問題