首页 / 软件开发 / Delphi / 第十五章-数据访问部件的应用及编程(一)(4)
第十五章-数据访问部件的应用及编程(一)(4)2007-05-07SetRecords方法:调用该方法可以修改表中当前记录的多个字段的值,调用该方法之前必须将数据集部件置成编辑状态,调用该方法之后,还要调用post方法,才能真正将当前记录的修改写回数据库表。调用SetRecord方法时,被修改的字段值必须要与表中实际存在的字段名对应,并且数据类型要相匹配。例如,下面的代码是修改上面刚刚插入的那条记录。Table1.Edit;Tabel1.SetRecord(, , ,9600000,1200000000);Tabel1.post;这一段代码是修改上面刚刚插入的那条记录的Area 和Population 字段的值,而对Name,Continent和Captial字段没有修改。在数据集部件中,还有一个重要方法Abort方法,该方法是用于取消其他方法的调用的,如在插入记录、修改记录和删除记录之前,往往需要用户确认是否真的要执行这种操作,此时调用Abort方法便可取消各种方法的调用,下面的代码是在用户删除一条记之前,让用户确认是否真的要执行删除操作。 Tabel1.BeforeDelete(DataSet:TDataSet);If MessageDlg("真的要删除记录吗?",mtConfirmation,mbyesNoCanel,0 <> mryes thenAbort; {取消删除操作} 关于书签(BookMark)操作;书签操作主要用于在表中快速地定位记录指针,在应用程序中常常要保存记录指针所在的位置,在进行其他处理之后,希望能快速地返回到先前指针所在的位置,此时,使用书签将显得特别有用。有关书签操作,Delphi提供了三个方法,它们是:● GetBookMark● GotoBookMark● FreeBokMark这三个方法一般都是在一起使用,GetBookMark方法返回一个TBookMark类型的变量,该变量包含着指向当前记录的指针,GotoMark方法用于快速地将记录指针定位到具有书签的记录处。FreeBookmark方法是与GetBookMark方法相反的操作,它释放书签标志。下面的程序代码阐述了书签操作的一般方法:BookMark : TBookMark;<Do something>BookMark := Table1.GetBookMark; {对当前记录作书签标志}Table1.DisalbeControls; {切断Table1与数据察觉部件的联系}Table.FirstWhile Not EOF Do {对表中全部记录进行其他处理}begin<Do something>Tabel1.Next;end;Tabel1.GotoBookMark(BookMark) Table1.enableControls; {重新定位记录指针回到原来的位置}Tabel1.FreeBookMark(BookMark); {删除书签BookMark标志} 15.3.5 数据集部件与数据浏览部件的连接 数据集部件TTabel和TQuery具有三个方法,DisableControls 方法、EnableControls方法、Refresh方法用于控制数据集部件和与其相连的数据浏览部件之间的连接,以及控制数据浏览部件的显示。在用户修改和更新以及遍历数据库表中的记录时,调用DisableControls方法具有重要意义,调用DisbaleControls方法以切断TTable或TQuery部件与数据浏览部件的连接,使数据浏览部件暂时失效,否则,在对TTable或TQuery部件的每次修改之后,窗体中所有与它们相连的数据浏览部件都要更新其显示内容,这亲显然会减慢处理速度。当遍历表中的记录时记录指针每移动一下,窗体中的数据浏览部件也随之更新一下其中的显示内容,在屏幕上产生闪烁。EnableControls方法的作用与DisbaleControls方法的作用是相反的,调用EnableControls方法,使TTable或TQuery部件恢复与数据浏览部件的连接,使暂时失效的数据浏览部件恢复到正常显示表中记录信息的状态。Refresh方法用于刷新数据浏览部件中的显示。在调用Refresh方法时,必须要确保TTable或TQuery部件是打开的。当数据集中的记录被修改之后,调用Refresh方法,数据浏览部件中显示的信息也随之改变。