环境: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文件保持一致。

相关文章:

  • 2022-12-23
  • 2021-12-12
  • 2022-12-23
  • 2022-12-23
  • 2021-12-01
  • 2022-01-09
  • 2021-10-13
  • 2021-05-09
猜你喜欢
  • 2021-06-03
  • 2022-12-23
  • 2022-12-23
  • 2021-07-01
  • 2021-10-24
相关资源
相似解决方案