四、ADOTable組件
ADODataset組件、ADOTable組件、 ADOQuery組件和ADOstreProc組件都是繼承自父類TcustomADODataset ,所以在屬性、事件及方法上有許多共同的地方。
TADOTable組件只能通過ADO訪問數(shù)據(jù)庫中單個基表的數(shù)據(jù),它即可以訪問 一個基表中的所有數(shù)據(jù)及字段,也可以訪問部分記錄,即通過在Filter屬性設(shè)置篩選條件實(shí)現(xiàn)。
由于TADOTable組件與其他組件不同的是,它專門針對數(shù)據(jù)庫中表進(jìn)行操作。
? TADOTable特有的一些屬性方法:
1) MaterSource屬性和MasterFields屬性
MaterSource屬性是用于建立主從關(guān)系的數(shù)據(jù)源,當(dāng)前的ADQTable中的數(shù)據(jù)將根據(jù)MaterSource屬性所指定的數(shù)據(jù)源變化而變化。在一個數(shù)據(jù)庫匯總,某些表之間可能存在互相關(guān)聯(lián)的,一種常見的情況是兩個表之間存在共同的字段。通過這些共同的字段,可以建立主從關(guān)系的關(guān)聯(lián)。可以通過訪問一個表而得到另一個表的數(shù)據(jù),這種主從關(guān)系建立以后,如果用戶在主表記錄選中一條記錄,則從表中相應(yīng)的記錄自動獲得。
MasterFields屬性指定用于建立主從關(guān)系的關(guān)聯(lián)字段,指定的字段是將主表和從表賴以存在的紐帶,這個字段必須是主從表中共有的字段。
2) Readonly
指定ADOTable中數(shù)據(jù)是否處于只讀狀態(tài)。
3) TableDirect
指定是通過表名來訪問數(shù)據(jù)庫還是在后臺運(yùn)行SQL命令訪問數(shù)據(jù)庫,部分的數(shù)據(jù)提供者不支持通過表名對數(shù)據(jù)庫的訪問,這時的ADOTable就只能通過后臺運(yùn)行SQL的SELECT語句來訪問數(shù)據(jù)庫。如果設(shè)置為True,則ADOTable組件在后臺運(yùn)行SQL命令訪問數(shù)據(jù)表,為False按表名訪問數(shù)據(jù)庫,缺省值為Flase。
4) TableName
指定ADOTable要操作的表名。
只有當(dāng)設(shè)置了正確的connection或者connectionstring,Active屬性為True的時候,才能設(shè)置TableName屬性,表名的列表才會在ObjectInspector中顯示。
5) Append方法和AppendRecord(constValues:arrayofconst)
使用Append方法在增加一條新記錄的同時,并為新記錄賦值。賦值是通過一個數(shù)組作為參數(shù)傳遞進(jìn)去的。但是必須保證數(shù)組的維數(shù)和字段數(shù)一致且順序一致。
6) Post方法
執(zhí)行Post方法,是將已經(jīng)修改完畢的記錄寫入數(shù)據(jù)庫中。通常是每執(zhí)行完一個修改記錄的操作,執(zhí)行一次Post操作,以完成對數(shù)據(jù)庫的更新。