it编程 > 编程语言 > Delphi

解决升级到 Delphi 12 后遇到 SQLite 不兼容的问题

174人参与 2024-05-16 Delphi

今天升级到 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}

 

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

delphi JSON序列化(四)

05-16

mORMot2 的 Logger日志

05-16

Quick Library 简介

05-16

mormot2 笔记(二) Http服务的简单搭建

05-12

delphi redisclient测试

05-12

Delphi 实现刘谦春晚魔术

05-12

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论