我试图修改one of the FireDAC sample projects以便使用现有的SQLite文件作为数据库源。该示例工作正常,未修改并连接到其数据库。但是,我无法确定它连接到的数据库在哪里指定,以便更改它。如何在FireDAC的TFDPhysSQLiteDriverLink组件中指定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
designtime编辑器中(尽管它引发了一个异常,这里指定为属性的文件会出现在流式DFM中,我想);它不在代码中; ...还有哪些地方呢?
(我从来没有使用FireDAC之前,所以是一个完整的小白,顺便说一句,我是通过文档和示例自学。)
感谢Martyn。我认为连接编辑器是抛出异常(见上文),但我会再试一次。你的步骤很清楚,并且解释得很好,谢谢! –
我这样做的方式只是在连接编辑器的数据库值框中包含.Sqlite文件的完整路径 - 这就是我所要做的。我使用XE8 btw。 – MartynA
谢谢 - 因为我知道了,所以我删除了我的评论(我误读了你写的内容,看着错误的文本框,而不是下面的参数),但你仍然回答; –