关于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