VFP編程:VFP數(shù)據(jù)環(huán)境

字號(hào):

每一個(gè)使用了表的表單都包括…一個(gè)數(shù)據(jù)環(huán)境。數(shù)據(jù)環(huán)境是一個(gè)容器對(duì)象,它用來(lái)定義與表單相聯(lián)系的數(shù)據(jù)實(shí)體(表、視圖)的信息及其相互聯(lián)系。數(shù)據(jù)環(huán)境容器一般包含一到多個(gè)Cursor類對(duì)象,表單中所含Cursor類對(duì)象的個(gè)數(shù)與表單關(guān)聯(lián)的數(shù)據(jù)實(shí)體(表、視圖)的個(gè)數(shù)相同,一個(gè)Cursor類對(duì)象與一個(gè)數(shù)據(jù)實(shí)體(表、視圖)對(duì)應(yīng),如果一個(gè)表單關(guān)聯(lián)多個(gè)表,在數(shù)據(jù)環(huán)境容器中還有一個(gè)Relation類對(duì)象描述這些表之間的關(guān)系,下面對(duì)數(shù)據(jù)環(huán)境容器及其可能包含的對(duì)象分別進(jìn)行說(shuō)明。
    1.游標(biāo)(cursor)類對(duì)象
    當(dāng)存儲(chǔ)在磁盤上的一個(gè)表文件被打開(kāi)時(shí),系統(tǒng)會(huì)在內(nèi)存中建立一個(gè)該表的臨時(shí)文件,內(nèi)存中的臨時(shí)文件實(shí)際上是磁盤文件的一個(gè)映象,所有數(shù)據(jù)庫(kù)的操作修改命令都是針對(duì)這個(gè)映象進(jìn)行的,當(dāng)發(fā)布數(shù)據(jù)更新TableUpdate()命令或關(guān)閉數(shù)據(jù)文件的命令后,系統(tǒng)再把這個(gè)映象文件存入磁盤,從而完成對(duì)磁盤文件的修改。CurSor類對(duì)象也稱為游標(biāo)對(duì)象,它用來(lái)定義臨時(shí)表的相關(guān)信息。
    Cursor類只支持Init、destory、Error等3個(gè)事件。
    2.關(guān)系(Relation)類對(duì)象
    如果表單所關(guān)聯(lián)的表多于一個(gè),數(shù)據(jù)環(huán)境容器中有一個(gè)對(duì)象.Relation用來(lái)定義這幾個(gè)表(視圖)間的關(guān)系。Relation類對(duì)象的屬性如表11.6所示。
    Relation對(duì)象也只有Init、destory、Error等3個(gè)事件方法。
    3.?dāng)?shù)據(jù)環(huán)境(DataEnvironment)容器
    數(shù)據(jù)環(huán)境是包括了cursor和Relation兩類對(duì)象的一個(gè)容器,該容器和其所含對(duì)象一起定義了表單中的數(shù)據(jù)源。
    除Init、destory、Errot等3個(gè)事件外,DataEnvironment還支持兩個(gè)事件和兩個(gè)方法:
    Before openTable()事件:打開(kāi)表時(shí)發(fā)生,打開(kāi)表前執(zhí)行該事件代碼
    AfterCloseTable()事件:關(guān)閉表時(shí)發(fā)生,關(guān)閉表后執(zhí)行該事件代碼。
    closeTable方法:用于關(guān)閉數(shù)據(jù)環(huán)境中所定義的所有數(shù)據(jù)源(表、視圖)。
    OpenTable:用于打開(kāi)數(shù)據(jù)環(huán)境中所定義的所有數(shù)據(jù)源(表、視圖)。
    4.?dāng)?shù)據(jù)環(huán)境設(shè)計(jì)器
    可以使用完全的編程方式建立數(shù)據(jù)環(huán)境,但大多數(shù)情況下都是用數(shù)據(jù)環(huán)境設(shè)計(jì)器來(lái)建立表單的數(shù)據(jù)環(huán)境。