第十一讲 C++ Builder中ADO控件的使用

发布时间 : 星期日 文章第十一讲 C++ Builder中ADO控件的使用更新完毕开始阅读

图11-3 展开后的数据库浏览器

11.1.3 Database DeskTop

Database DeskTop是Borland公司的一个小型数据库管理系统产品。C++Builder中可以使用Database DeskTop来创建、浏览和修改本地的Paradox和dBASE数据表。

执行Tools→Database DeskTop 菜单命令即可打开Database DeskTop。在Database DeskTop中可以打开子窗口对数据表进行创建、查询、执行SQL语句等操作。Database DeskTop子窗口主要有以下三种。

1.查询窗口

打开或建立新的QBE文件时,Database DeskTop将打开一个查询窗口,可以使用查询窗口检索表中的信息。

2.SQL编辑器

当打开或创建SQL文件时,SQL编辑器窗口就会自动出现在主窗口上面。SQL编辑器除了具有文本编辑器的一般特征以外,还具有执行和保存SQL语句的功能。在执行时,由SQL服务器进行文法检查。

3.表窗口

当打开或建立新的Paradox、dBASE、SQL表时,会出现表窗口,利用表窗口可以输入或修改表的结构。

Database DeskTop支持Paradox、dBASE和SQL文件格式,在Database DeskTop中建立一个表的步骤如下:

(1) 选择File→New→Table,或右击“Open Table”工具按钮选择“New”, Database Desktop将打开“Create Table”对话框,从下拉式列表框中选择“Paradox”(如果建立其它类型的数据表,也只要在这里作相应选择即可)。单击“OK”, Database DeskTop将打开创建数据表对话框。

(2) 在“Field Name”列输入字段名。移动光标到“Type”列,按下“空格”键或用鼠标右击“Type”列,从显示的数据类型列表中选择该字段的数据类型。在“Size”列键入一个合适的字段宽度(如果需要的话)。

(3) 使用向下箭头,重复如上步骤,直到指定所需的所有字段。

(4) 可以双击某字段的“Key”列将该字段指定为一个键。Paradox表可以有一个或几个键,但必须是该表最前面的几个字段。被指定为Key的字段会被自动索引,并且系统会检查键值组合的惟一性(即不允许两条记录的所有键值都相同)。

(5) 表结构创建完成之后,选择“Save As”命令按钮为该表命名并保存。在

Database DeskTop的表窗口中设计表的结构如图11-4所示。在Database DeskTop中可对数据表进行输入或编辑,具体步骤如下:

执行File→Open菜单命令打开数据表,执行Table→Edit Data菜单命令进入编辑模式,在该模式下可输入或编辑数据。在编辑完一条记录并进入下一条记录的编辑后,Database DeskTop将自动保存刚才输入或编辑的记录。

如果要修改表的结构,则应在打开表窗口之后执行Table→Restructure菜单命令

图11-4 使用Database DeskTop设计表的结构

11.1.4 BCB 的数据库组件

BCB数据库组件分为两大类:非可视的数据访问组件和可视化的数据控制组件。前者提供了取得数据的机制,它们位于组件面板的Data Access、BDE和ADO等页上;而后者主要用于浏览和编辑数据,它们位于Data Controls页上。

11.2数据库组件的连接

VCL的数据访问组件和数据控制控件之间通常使用DataSource来连接。下面这个简单的例子让我们对BCB使用组件连接数据库的技术有感性的认识。

【例11-1】 本例使用数据库组件连接位于本地的BCDEMOS数据库中的animals数据表进行浏览。具体制作步骤如下:

(1) 新建一个项目,在主窗体上放一个TTable类组件Table1(位于BDE组件页)。将它的DatabaseName属性设置为BCDEMOS,它的TableName属性设置为animals.dbf。

(2) 在窗体上放置一个TDataSource类组件Database1(位于Data Access页),并在其属性Dataset的下拉框中选取Table1,实现数据源和数据集相联系。

(3) 将一个TDBGrid类控件(位于Data Controls页)放到窗体上,将其DataSource属性设置为DataSource1,使其与数据源相联系。

(4) 回到Table1组件上,将其Active属性设置为true(缺省值为false),这样就打开了数据源,此时ANIMALS.DBF表中的数据立即显示在DBGrid1的栅格中(除BMP字段外)。可调整DBGrid控件的大小以便于浏览。

(5) 再将一个TDBImage类控件(位于Data Controls页)放置在窗体上,将其DataSource属性设置为DataSource1,DataField属性设置为BMP(animals表中的字段名,数据类型为图片),并调整该控件的尺寸和位置。

(6) 将一个TDBNavigator类控件(位于Data Controls页)放置在窗体上,将其DataSource属性设置为DataSource1。

至此,程序设计完毕。运行该程序,通过DBNavigator按钮可以实现添加和删除记录等功能,在DBImage中显示图片,如图11-5所示。

图11-5 简单的数据表浏览程序

11.3 TDataSet类

TTable组件用于方便快捷地访问本地数据表,而处理SQL数据库服务器则通常使用TQuery组件,它们都是TDataSet的派生类。本节将对TDataSet类属性和方法的用法作一个较为详细的介绍,它们是BCB数据库技术的重要基础。 11.3.1 连接数据库

与连接数据集有关的属性和方法主要有下面两点。 1.DatabaseName属性

DatabaseName属性用来指定当前使用的数据库。在程序的设计阶段,可在Object Inspector中进行设置,通常只要在如图5-6所示的组合框中选择一个已定义的数据库别名即可。此外,DatabaseName 也可以在程序运行时动态设置。如果没有设置过数据库别名,那么也可以对DatabaseName属性输入数据表文件所在目录的路径。例如,当数据表文件与应用程序项目在同一目录下时,只要对DatabaseName属性输入“.\\”即可。

图11-6 选择数据库

2.TableName属性

TableName属性用来指定数据表的名称,在设置TableName的属性值之前,应该首先设置DatabaseName属性的值。如果DatabaseName属性的值是在设计阶段指定的,则可通过选择下拉列表框中有效表名来指定TableName。 11.3.2 打开和关闭数据表

打开和关闭数据表的有关属性和方法主要有下面三点。

1.Active属性

如果Active属性为true,相当于调用Open方法打开数据集,使数据集处于Browse状态。如果设置为false,相当于调用Close方法关闭数据集。在程序的运行阶段,在设置DatabaseName 的值之前,必须首先将Active属性的值设置为false,然后可设置DatabaseName的值,最后再打开该数据集。

2.Open方法

Open方法用于打开数据集,使它处于Browse状态,相当于把Active属性设置为true。

3.Close方法

Close方法用于关闭数据集,使它处于非活动状态,相当于把Active属性设置为false。 5.3.3 浏览记录

浏览记录的有关属性和方法主要有下面七点。 1.Bof属性

Bof属性为只读。如果当前记录是数据集中的第一条记录,Bof属性返回true,否则返回false。当程序刚打开一个非空的数据集或调用了First过程时,Bof为true。 2.Eof属性

Eof属性为只读。如果当前记录是数据集中的最后一条记录,Eof属性返回true,否则返回false。当程序打开一个空的数据集或调用了Last过程时,Eof为true。

3.RecordCount属性

联系合同范文客服:xxxxx#qq.com(#替换为@)