首页 > 解决方案 > 为什么我无法从 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] 错误:文件已加密或不是数据库。

问题是什么 ?

标签: delphifiredac

解决方案


发现了问题。根据文档

加密的数据库格式与其他类似的 SQLite 加密扩展不兼容。这意味着您不能使用使用非 FireDAC 库加密的加密数据库。如果您需要这样做,那么您必须使用原始工具解密数据库并使用 FireDAC 对其进行加密。

我不能用 SQLite Maestro(不同的库)加密并在 FireDAC 中打开它,所以我必须解密它然后使用 FireDAC 加密数据库。我使用了 Delphi 附带的加密示例,现在我可以使用 FireDAC 打开它。


推荐阅读