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