FireDAC 学习 - 4:属性继承

我们知道,TFdQuery 是通过 TFdConnection 去连接数据库的。

而 TFdConnection 连接数据库的参数,可以通过 TFdManager 获得。

打开前面的例子程序,在设计期,选择 FdQuery1,看看其属性面板,有一个属性:FetchOptions,这个属性可以拉开,里面有一堆属性可以设置。

选中 FdConnection1,查看其属性面板,也有一个 FetchOptions 属性;

选中 FdManager1 查看其属性面板,也有一个 FetchOptions 属性。

默认情况下,也就是拖了上述几个控件到界面上,什么属性都不去修改的情况下,FdQuery1 的 FetchOptions 属性里面的那一堆属性值,是默认跟随 FdQuery1.FetchOptions 里面的属性的。这里我们可以做一个实验:

1. 在属性面板选择 FdQuery1 的 FetchOptions 属性,拉开,里面最后一个属性名是 Unidirectional,其值是 False;

2. 在属性面板上查看 FdConnection1 的相同属性,也是 False;

3. 在属性面板上查看 FdManager1 的相同属性,也是 False;

4. 修改 FdManager1 的该属性为 True;

5. 选择 FdQuery1,在属性面板查看该属性,已经自动变为 True 了。说明它自动跟随 FdManager1 的属性设置。

上述自动跟随的好处是,当你有一大堆的 TFdQuery 的时候,只要集中在 FdManager1 里面设置相关属性就可以了,无需逐个 TFdQuery 去设置。

------------------------ 分割线 ------------------------

但是,如果某个 TFdQuery 需要单独设置某个属性,也是可以的。还是以 Unidirectional 作为例子,在 FdManager1 里面已经设置为 True,则 FdQuery1 也跟随为 True。这时候,如果 FdQuery1 我要单独设置为 False 怎么办?

直接选择 FdQuery1,在属性面板 里面,将这个属性设置为 False 就可以了。这时候,FdQuery1 的 FetchOptions 拉开的一堆属性的第一个属性名为 AssignedValues 的属性里面,多了一个 [evUnidirectional]。意思是,AssignedValues 里面有哪个属性的名字,哪个属性就可以单独设置而不跟随 FdManager。

如果程序写了一半,你又想要那个属性跟随 FdManager 的设置,在其 FetchOptions 属性底下的 AssignedValues 属性里面,把该属性对应的名字去掉,就可以了。

猜你喜欢

转载自blog.csdn.net/pcplayer/article/details/106989995