當我們在LabVIEW平臺中寫完程序交給用戶使用時,一般情況下程序能夠很好的運行,但在某些特殊情況下,用戶進行某個操作時,會經常彈出錯誤提示框,報告你的程序出錯誤了,并導致整個程序的退出。如下面一個典型的錯誤提示信息下圖所示:
這個時候會大大影響用戶的使用體驗,總是招來用戶的各種抱怨。那么,這個時候我們就會思考,為什么程序員自己測試時一般不會出現或者很難發現這種錯誤,而到了用戶手中就會經常出現各種莫名其妙的錯誤呢?
答案很簡單,程序員自己寫代碼時,已經形成了固定的思維,你會不自覺的按照固定的流程思路去操作你的軟件,而對于用戶來講,他的操作可能是隨心所欲的,未必按照你想當然認為的流程去操作,這個時候就需要我們在自己的程序中要具備完善的錯誤處理機制。
下面通過一個例子來說一下LabVIEW程序中錯誤處理的簡單方法。
做一個最簡單的例子,其功能是獲取某個文件的大小信息并在前面板上進行顯示。
其前面板及程序框圖如下圖所示:
正常情況下,如在路徑中選擇或者輸入文件名稱“D:\data.txt”,程序正確的獲得了該文件的大小并進行了顯示。
但如果你在路徑控件中輸入一個不存在的文件或者文件名稱的格式不正確時,則會彈出本文開頭時所示的錯誤提示框,并導致整個程序的退出。
上例中使用了“獲取文件大小”函數,該函數的輸入輸出參數信息如下圖所示:
該函數中,有一個“錯誤輸出”參數,其是一個簇(相當于C語言中的結構體)類型,包含了三個成員變量,分別為“status”、“code”和“source”,指示了該函數在程序運行過程中是否有錯誤,當有錯誤的時候,布爾類型的“status”為真,并給出該錯誤的代碼值和出錯的源信息。
因此,在VI程序中可根據簇中“status”的值來決定是否進行下一步的處理,將代碼修改為如下:
上面代碼中根據“錯誤輸出”參數“status”的值進行處理,其值為假(不出錯)時顯示文件大小,其值為真(出錯)時給用戶彈出一個友好的提示框,提示文件路徑輸入錯誤,可重新輸入。注意這種情況下與LabVIEW本身彈出的錯誤框提示是不同的,此時整個程序不會導致退出,可作下一步的處理。
當然,也可以直接將“錯誤輸出”參數連接到選擇結構中,LabVIEW會自動處理,這樣更簡單一些,如下圖所示:
如果你想偷懶的話,你也可以直接將“錯誤輸出”參數連接到一個顯示控件上,當出錯的時候也可以避免彈出錯誤提示框。只是,一般情況下這個顯示控件是不會直接顯示給用戶看的(隱藏或放到顯示區域外),所以此時用戶不知道你的程序是否出錯,只是程序沒有反應而已,所以,這不是一種好的處理方法。
我們使用LabVIEW編寫大型項目程序時,為了程序的健壯性、可靠性等,我們要盡量在程序中提供完善的錯誤處理機制,包括寫自己的子函數時,也應該設計這種處理機制。
如果你覺得這篇文章對你有用的話,收藏+點贊吧。
通過LabVIEW的Database工具包訪問Access數據庫(新版本的Access數據庫后綴為.accdb,2007及以前版本的后綴為.mdb)。
本人電腦軟件配置為:WIN10 64位操作系統,Access 2016版本軟件,因此創建的數據庫文件后綴為.accdb(2007及以前版本的Access數據庫文件后綴為.mdb)。但通過LabVIEW的Database工具包訪問Access數據庫時,報“未找到提供程序,該程序可能未正確安裝”錯誤,錯誤代碼0x800a0e7a。
嘗試了網絡中的各種辦法,均無效,最后終于找到了解決辦法。終極解決辦法如下:
1、下載安裝“Microsoft Access 2010 數據庫引擎可再發行程序包”(下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255),該程序包會安裝 ODBC 和 OLEDB 驅動程序,供應用程序開發人員在開發與 Office 文件格式連接的應用程序時使用。(之所以會報0x800a0e7a,就是自帶的ODBC數據源中沒有.accdb的驅動程序,只有.mdb的)。安裝完驅動程序包后,接下來配置ODBC數據源。
2、進入管理工具,雙擊ODBC 數據源(32-bit);
3、雙擊打開 “ODBC數據源” ,按下圖進行操作;
4、選擇 “Microsoft Access Driver(*.mdb,*.accdb)”,如下圖所示。(此處特別注意,不要選擇“Microsoft Access Driver(*.mdb)),不然將無法訪問.accdb數據庫文件。
5、對 “ODBC Microsoft Access” 進行安裝,如下圖所示。
6、選擇數據庫類型,通過如下圖所示選擇對應的數據庫文件。
7、點擊“確定”按鈕。
8、數據庫管理程序配置成功的界面如下圖所示。
9、點擊確定按鈕后,再重啟電腦一次,再通過LabVIEW的Database工具包訪問Access .accdb數據庫文件,就不會再報“未找到提供程序,該程序可能未正確安裝”的錯誤了