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

字號:

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