delphi - 为什么我无法从 fireac 打开我的 sqlite 数据库?
问题描述
我可以使用 sqlite maestro 应用程序打开我的加密 sqlite 数据库,但我无法使用 fiedac 我收到此错误
[FireDAC][Phys][SQLite] 错误:密码:指定的密码无效或数据库已损坏
这是我的数据模块单元:
object DM: TDM
OldCreateOrder = False
Height = 306
Width = 468
object FDConnection1: TFDConnection
Params.Strings = (
'Database=C:\myapps\mydb.db'
'Password=mypass'
'DriverID=SQLite')
LoginPrompt = False
Left = 48
Top = 16
end
我将加密密钥写为密码,但是当我没有输入任何密码时,我收到错误:
[FireDAC][Phys][SQLite] 错误:文件已加密或不是数据库。
问题是什么 ?
解决方案
发现了问题。根据文档:
加密的数据库格式与其他类似的 SQLite 加密扩展不兼容。这意味着您不能使用使用非 FireDAC 库加密的加密数据库。如果您需要这样做,那么您必须使用原始工具解密数据库并使用 FireDAC 对其进行加密。
我不能用 SQLite Maestro(不同的库)加密并在 FireDAC 中打开它,所以我必须解密它然后使用 FireDAC 加密数据库。我使用了 Delphi 附带的加密示例,现在我可以使用 FireDAC 打开它。
推荐阅读
- android - Imagebutton Android中的高度和阴影
- matlab - 将带有 While 循环的大型文本文件读入 MATLAB
- spss - 根据先前案例中的值选择案例
- msbuild - Visual Studio 自动重命名外部工具路径
- ansible - 如何使用 Molecule for Ansible 测试安装和卸载场景?
- git - 无法删除已消失的本地工作树分支
- javascript - 将组件 prop 传递给 Vue.js 中的组件的惯用方式是什么?
- java - 如何使用java中的多个服务器以相同的顺序处理来自队列的消息
- ms-access - 搜索 2 次以在 2 个表之间进行匹配
- apex - 找不到 SObject 时该怎么办?