当然用户要想通过数据浏览部件编辑修改数据库表中的记录字段时,还要受到其它因素的制约。除了数据浏览部件本身的ReadOnly属性设置为False外,还要设置其相应的字段部件和数据集部件的CanModify属性True性;设置TDataSource部件的AutoEdit属性为True,如果数据库表是SQL数据库服务器中的数据库表,用户必须要具有读写数据库的权限等。当然在实际的程序设计过程中并没有这样繁琐,因为很多属性的缺省值都是允许用户修改表中的记录的。
除了TDBGrid部件之外,如果通过一个数据浏览部件修改字段值,那么当光标(或焦点)离开数据浏览部件时,数据浏览部件中被修改的值就会自动地被写回到磁盘数据库中。若在焦点没有离开数据浏览部件之前,按ESC键,那么Delphi会自动地放弃其对字段值的修改。在TDBGrid部件中修改表中的记录时,只有当焦点离开当前的记录时,即记录指针移到其他记录上时,用户对当前记录的修改会被写回磁盘上的数据库表,在焦点没有离开当前记录时,按ESC键,Delphi会自动放弃对当前记录的修改。
16.2 使用TDBText部件显示表中的数据
TDBText部件是一个只读的数据浏览部件,它类似于TLabel部件。只是TDBText 部件用于显示数据库表中记录的指定字段的值。因为TDBText部件显示的是表中当前记录的指定的字段的值,因而它显示的内容也是动态的,在其中显示的内容随着记录指针的移动而变化。用TDBText部件显示Customer.DB表中的Company字段信息时可用如图16.2所示的窗体来实现。
其中各部件的属性设置如表16.2所示
表16.2 表中各部件的属性设置
━━━━━━━━━━━━━━━━━━━
属 性 属 性 值
───────────────────
Table1.DatabaseName DEMOS
Table1.TableName Customer.DB
Datasource1.DataSet Table1
DBText.DataSource DataSource1
DBText.DBField Company
━━━━━━━━━━━━━━━━━━━
16.3 使用TDBEdit部件显示和编辑表中的数据
TDBEdit部件是专门用于显示编辑数据库表中当前记录的各个字段值的数据浏览部件,在应用程序中,我们常常用一个TDBEdit部件来对应表中一个字段,通过设置TDBEdit部件的DataSource、DataField属性便可以为TDBEdit部件指定表中相应的字段。如果用户希望能通过TDBEdit部件编辑修改数据库表中的字段值,还要设置TDBEdit部件的ReadOnly属性为False,设置与TDBEdit相连的数据源部件TdataSource部件的AutoEdit属性为True以及确保与TDataSource部件相连的数据集部件TTable或TQuery部件处于编辑状态,即设置它们的CanModify属性为True。
例如,在图16.3所示的窗体中,使用多个TDBEdit部件显示和编辑Customer.DB表中当前记录的各个字段。窗体中各部件的属性如表16.3所示。
图16.3 用TDBEdit部件显示和编辑表中的数据
表16.3 窗体中各部件的属性
━━━━━━━━━━━━━━━━━━━━
属 性 属 性 值
────────────────────
Table1.DatabaseName DEMOS
Table1.TableName Customer.DB
Datasource.DataSet Table1
DataSource.AutoEdit True
DBNavigator.DataSource DataSource1
━━━━━━━━━━━━━━━━━━━━
窗体中其它部件都是TLabel部件和TDBEdit部件,TLabel部件用于显示表中各字段的名字,TDBEdit部件对应表中各个字段。程序运行之后如图16.4所示。用户可以在其中任何一个TDBEdit部件中修改其中的字段值。
用TDBEdit部件显示和修改表中的数据
窗体中还使用了一个TDBNavigator部件,使用它的目的是在表中移动记录指针,还可以进行修改、插入、删除记录等操作,具体的使用和操作参看 16.5 TDBNaigator部件的使用一节。
16.4 用TDBGrid部件显示和编辑表中的数据
TDBGrid部件和TDBEdit部件一样,它们是专门用来显示和编辑数据库表中的数据的,但TDBGrid部件的功能更强大一些,它可以以网格的形式显示数据库表中全部记录的所有字段信息。
用TDBGrid显示数据库表中的记录信息
上一篇: Delphi 数据浏览部件的应用及编程(二)
下一篇: Delphi 与SQL编程(一)
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




