我正在尝试修改FireDAC 示例项目之一,以便使用现有的 SQLite 文件作为数据库源。该示例未经修改即可正常工作并连接到其数据库。但是,我无法弄清楚它连接到的数据库是在哪里指定的,以便对其进行更改。
根据文档,组件上应该有一个Database
属性TFDPhysSQLiteDriverLink
。不存在:它不存在。我什至将表单转换为文本并查看了所有组件的自定义属性,并且在任何地方都没有定义路径。代码中也没有 - 示例非常小,根本没有定义路径。
文档上的另一个选项是包含该FireDAC.Phys.SQLite
单元,尽管这没有解释如何设置数据库,因为据我所知,该单元仅包含该组件。当我搜索数据库属性(见附图)时,该单元的任何类中的任何一个似乎都不是我所追求的。最接近的是用于备份组件的字符串 - 我怀疑这就是我需要的。类中有一个SQLiteDatabase
属性,TFDPhysSQLiteConnection
但它是只读的。
FireDAC.Phys.SQLite 单元中定义的所有数据库属性的列表
我还尝试通过双击组件在运行时创建临时连接定义。TFDConnection
这只给出了一个例外:
双击 TFDConnection 组件时出现异常
我发现的唯一解决方案是在 XE5 文档中,它说设置$(PUBLICDOCUMENTSDIR)
环境变量。我已经必须这样做才能让演示运行(以前,它在线上抛出了相同的异常FDConnection1.Connected := True;
;现在没有,演示在运行时完美运行。)这种变化显然没有影响设计师,我甚至不知道我是否在寻找正确的地方,因为毕竟文档都谈到了设置Database
属性。
所以我很难过。它在哪里设置数据库?它不在 DFM 或任何流媒体属性中;它不在文档定义的属性中(TFDPhysSQLiteDriverLink.Database
不存在,看起来也不存在);它不在设计时TFDConnection
编辑器中(即使它引发异常,我认为此处指定为属性的文件也会出现在流式 DFM 中);它不在代码中;……还能在哪里?
(我以前从未使用过 FireDAC,所以我是一个完整的菜鸟,顺便说一句。我通过文档和示例进行自学。)