今天升级到 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” 即可。文章来源:https://www.toymoban.com/news/detail-746017.html
{$IF (CompilerVersion>33.0) AND (CompilerVersion<36.0)} FireDAC.Phys.SQLiteWrapper.Stat, {$ELSEIF CompilerVersion >35.0 } FireDAC.Phys.SQLiteWrapper.FDEStat, {$ENDIF}
文章来源地址https://www.toymoban.com/news/detail-746017.html
到了这里,关于解决升级到 Delphi 12 后遇到 SQLite 不兼容的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!