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 屬性裏面,把該屬性對應的名字去掉,就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章