手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi数据库控件使用入门

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!


  TDBGrid构件以栅格的形式显示和编辑数据集中的数据。它的外观很大程度上取决于下面三个因素:l 一是永久的列对象。 二是永久的字段对象。 三是数据集构件的ObjectView属性将影响ADT和数组字段的显示方式。对于TDBGrid构件来说,最重要的属性是Columns,这是一个TDBGridColumns对象,用于管理一组TColumn对象。在设计期,可以打开一个编辑器建立永久的列对象,然后在对象观察器中设置列对象的属性。

  动态的列对象

  如果TDBGridColumns的State属性设为csDefault,列是动态生成的,列的属性取决于字段的属性。当字段的属性发生变化时,列的属性也跟着变化。让列动态生成的好处是,可以在运行期动态地选择其他数据集,而不用担心栅格是否适合于显示新的数据集。例如,可以用同一个TDBGrid构件先显示一个Paradox表,再显示查询另一个数据库的结果。在设计期,无法直接修改动态列对象的属性,只能修改字段对象的属性,从而间接地修改动态列对象的属性。

  动态列对象的生存期也取决于字段对象的生存期。如果数据集没有建立永久的字段对象,那么,当数据集关闭时,所有的动态列对象也将消失。注意:如果在运行期把TDBGridColumns的State属性设为csDefault,将删除所有的列对象,然后根据数据集中的字段对象重建列对象。

  要能够在设计期自定义栅格,就要用到永久的列对象。建立了永久的列对象后,如果TDBGridColumns的State属性设为csCustomized,就可以独立设置每一列的属性。例如,默认情况下,列的标题显示字段的标签即DisplayLabel属性,通过修改TColumnTitle的Caption属性可以重新指定列的标题,而TField的DisplayLabel属性则不会受到影响。TDBGridColumns的State属性设为csCustomized适合于那些数据集的结构是固定不变的情况。如果需要在运行期切换不同的数据集,就不能把State属性设为csCustomized。要创建永久的列对象,首先要在窗体上选择TDBGrid构件,然后对象观察器中单击Columns属性边上的省略号按钮将打开编辑器。

  刚开始的时候,这个编辑器是空白的,这是因为,默认情况下,栅格中的列对象都是动态生成的,还没有永久的列对象。要基于数据集中的每一个字段分别创建一个永久的列对象,可以单击鼠标右键,在弹出的菜单中选择“Add All Fields”命令。要创建一个独立的永久列对象,可以单击工具栏上的(Add New)按钮。选择这个刚创建的列对象,然后在对象观察器中设置FieldName属性指定一个字段,设置Caption属性指定列的标题。要删除一个列对象,可以单击工具栏上的(Delete Selected)按钮。如果把永久的列都删掉,栅格反而能显示数据集中所有的字段,这是因为,永久的列删掉以后,Delphi 4会自动把TDBGridColumns的State属性设为csDefault并且动态生成所有的列。

  要调整列在栅格中显示的顺序,可以用鼠标把列对象前移或后移。对于永久的列对象来说,它的属性的默认值仍然取自于字段,除非您修改了永久列对象的属性。例如,默认的情况下,列的标题就是字段的DisplayLabel属性。如果修改字段的DisplayLabel属性,列的标题将随之改变。但是,一旦您修改了列对象的Caption属性,列的标题不再与字段的DisplayLabel属性存在联动关系,它们彼此是独立的。

  前面讲过,创建一个永久的列对象时,需要设置FieldName属性指定一个字段。不过,您也可以让FieldName属性为空,此时,TColumn对象的Field属性将返回NULL,并且该列在栅格中是空白的。空白的列往往用于用户显示一些自定义的内容,如图像或图表等。几个列对象的FieldName属性可以设为同一个字段。由此可见,TDBGrid的FieldCount属性可能小于栅格的列数。

  数据源

  TDataSource构件是一个非可视的构件,它充当了数据集和数据控件之间的桥梁。每一个数据控件都必须指定一个数据源(TDataSource构件),相应地,TDataSource构件的DataSet属性必须指定一个数据集。下面简单介绍一下TDataSource构件的属性和事件。DataSet属性用于指定一个数据集。在设计期,可以在对象观察器中为DataSet属性选择一个数据集。在运行期,可以通过代码动态地选择数据集。程序示例如下:

With CustSource Do
Begin
If DataSet = 'Customers' then
DataSet := 'Orders'
Else
DataSet := 'Customers';
End;
  也可以指定另一个窗体上的数据集构件,例如:

Procedure TForm2. FormCreate (Sender : TObject);
Begin
DataSource1.Dataset := Form1.Table1;
End;
  一般情况下,TDataSource构件的名称是无关紧要的。不过,TDataSource构件的名称应当能反映它所连接的数据集,例如,假设TDataSource构件连接的数据集叫Customers,相应地,TDataSource构件的名称最好叫CustomersSource。

  Enabled属性用于控制TDataSource构件是否与数据集连接,设为True表示连接,设为False表示暂时断开连接。如果Enabled属性设为False,凡是连接于这个数据源的数据控件将变成空白。如果AutoEdit属性设为True,当用户在数据控件中键入字符时,数据集就自动进入dsEdit状态。如果AutoEdit属性设为False,程序必须调用Edit函数才能进入dsEdit状态。

  当数据集的当前记录的位置发生变化时将触发OnDataChange事件,这可能是因为程序调用了Next、Previous、Insert等方法。当前记录的数据将要被更新时将触发OnUpdateData事件,这可能是因为调用了Post。在处理这个事件的句柄中,可以对数据进行校验。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS