解决升级到 Delphi 12 后遇到 SQLite 不兼容的问题
  vCYCLj6LUElj 2023年11月12日 25 0

今天升级到 Delphi 12 后,编译运行原来的项目,出现“[FireDAC][Phys][SQLite][sqlite3]-303.Capability is not supported”的错误。

经过查找文档,发现是FireDAC SQLite 版本更新导致的。

RAD Studio 12.0 支持 SQLite 3.42,同时保留了使用 FireDAC 加密(FDE)的 SQLite 3.31.1 的选项。由于 SQLite 3.42 版本放弃了 FireDAC 用于加密支持的机制,所以它不能再使用。因此,使用 FireDAC 和 SQLite 有三种不同的方式:
1、使用最新版本,不使用 FireDAC 加密。
2、使用付费的 SQLite EE(具有原生 SQLite 加密支持),FireDAC 从 RAD Studio 11.0 开始就支持了。
3、继续使用 SQLite 3.31.1 或更早版本,使用 FireDAC 加密(FDE)。

 不加密和使用付费的方式是可能的,这辈子都不可能。所以只能使用第三种方法:

只需将引用单元 “FireDAC.Phys.SQLiteWrapper.Stat” 改成 “FireDAC.Phys.SQLiteWrapper.FDEStat” 即可。

{$IF (CompilerVersion>33.0) AND (CompilerVersion<36.0)}
  FireDAC.Phys.SQLiteWrapper.Stat,
{$ELSEIF CompilerVersion >35.0 }
  FireDAC.Phys.SQLiteWrapper.FDEStat,
{$ENDIF}

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  ZGYAxb2wjd2Z   24小时前   7   0   0 Delphi
  trFW46kwzceA   2024年01月13日   16   0   0 Delphi
  trFW46kwzceA   2024年01月11日   19   0   0 Delphi
  jl63rPptnaFE   2024年02月21日   17   0   0 Delphi
  trFW46kwzceA   2024年01月10日   20   0   0 Delphi
vCYCLj6LUElj