本文详细介绍了Delphi数据控件的属性,方法和使用技巧。
在数据库应用程序中,数据控件是经常要用到的。数据控件都是可视的。也就是说,如果修改了这些构件的属性,能在窗体上马上反映出来。如果这些构件的Enabled属性设为True并且数据集的Active属性也设为True,在设计期就可以看到数据。
下面就来介绍一下这些控件的简单应用:
指定一个数据源
数据控件必须通过TDataSource构件连接数据集。TDataSource构件扮演的角色实际上就是数据控件与数据集之间的桥梁。首先,把一个数据集构件放到窗体或数据模块上,设置它的DatabaseName属性指定要访问的数据库,设置它的TableName属性指定要访问的表。接着,把一个TDataSource构件放到窗体或数据模块上,设置它的DataSet属性指定数据集。然后,把一个数据控件放到窗体上,设置它的DataSource属性指定TDataSource构件,而这个TDataSource构件的DataSet属性已经指定了一个数据集。最后,设置数据控件的DataField属性指定要显示的字段。不过,对于TDBGrid、TDBCtrlGrid和TDBNavigator构件来说,不需要设置DataField属性,因为这几个控件是以整个数据集为工作内容的。
编辑和更新数据
除了TDBNavigator构件外,其他数据控件都是用来显示和编辑数据的。这里要介绍怎样编辑数据。
要使用户能编辑数据,数据集必须进入dsEdit状态。如果TDataSource的AutoEdit属性设为False,用户不能直接编辑数据,除非程序调用Edit函数。
要使用户能够在数据控件中修改数据,必须把数据控件的ReadOnly属性设为False。如果ReadOnly属性设为True,数据控件中显示的数据就是只读的。一般情况下,TDataSource构件的Enabled属性设为True。如果这个属性设为False,数据控件就无法显示数据,更不能修改数据。
如果数据集构件的ReadOnly属性设为True,数据集就是只读的,用户在数据控件中所作的修改不能写到数据集中。除了TDBGrid构件外,当用户修改了一个字段的值,还需要把输入焦点移走,新的数据才写到数据集中。在移走输入焦点之前,用户随时可以按ESC键取消修改。在TDBGrid构件建立的栅格中,当用户修改了一个字段的值,还需要把输入焦点移到另一条记录上,新的数据才写到数据集中。