我的C++應用程序需要處理屬於不同版本的SSCE數據庫文件。現在,我無法知道數據庫的版本。如何使用OLEDB API獲取給定的SQL Server Compact Edition數據庫文件(.sdf)的版本?
問題是如果OLEDB SSCE提供程序的版本與數據庫文件的版本不匹配,則IDBInitialize::Initialize()
將失敗,並顯示E_FAIL
。必須獲得重要的IErrorInfo
對象才能獲得有意義的錯誤消息。
問題是,E_FAIL
的錯誤代碼並不告訴我失敗是由於版本不匹配還是由於某些其他原因。在第一種情況下,我應該與另一個SSCE提供程序重試,而在第二個應用程序應該終止。
我該如何實現這個邏輯?在致電IDBInitialize::Initialize()
檢查版本兼容性之前,是否有一些API可以調用?有沒有辦法獲得真正的錯誤代碼而不是不透明的E_FAIL
?
謝謝。