關於UniDAC連接加密SQLite錯誤“file is encrypted or is not database”解決方法


環境:Delphi 2010,UniDAC.v4.0.1

 

今天使用SQLite Developer 3.8.0.492新建並加密了一個數據庫,但是在D2010中使用UniDAC控件卻無法連接數據庫,一直彈出“file is encrypted or is not database”的錯誤,后來才發現原因出在Sqlite3.dll的版本上。

 

先說一下連接SQLite的具體配置:

在窗體中依次拖入UniConnection、UniQuery、SQLiteUniProvider控件,在UniConnection->Options->ClientLibrary中指定所使用的SQLite3.dll文件,UniConnection->Options->EncryptionKey設置數據庫密碼,UniQuery->Connection設為UniConnection。

SQLite3.dll是使用wxSQLite3的加密版,然后問題就來了,后來換了好幾個SQLite3.dll的加密版都不行,最后才懷疑到SQLite Developer上。因為SQLite Developer使用的SQLite3.dll版本與我給UniDAC指定的SQLite3.dl版本不一致,所以造成UniDAC無法讀取用SQLite Developer加密的數據庫,解決方法是用wxSQLite3的加密版替換SQLite Developer目錄下的SQLite3.dll,或反之亦可。

 

總之,重點就是:確保創建、加密SQLite數據庫所使用的SQLite3.dll與查詢數據庫所使用的SQLite3.dll文件保持一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM