![]() ![]() |
||||||
VB中数据集合对象的应用 | ||||||
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:48:49 文章录入:杜斌 责任编辑:杜斌 | ||||||
|
||||||
对象变量的集合 对于对象变量可以理解为属于某种类型对象的集合,这个集合可以有很多对象,也可以只有一个,甚至可以是空集。在VB中可以用Set语句使一个对象变量指向一个具体的控件。 对于集合对象,其Count属性是一个非常重要的属性,利用这个属性可以对同一类对象的某一共同的属性进行访问和操作。如可以用以下的代码实现将项目中所有窗体上控件的字体的大小都设置成统一的格式,所有载入的窗体中的控件的字体都被指定为宋体,字号为16。 (1) 在项目中定义一标准模块
(2) 在项目中的所有窗体的Activate事件中加入以下语句:
2 数据库中的集合对象 在VB的数据库编程中,所有的数据库均看作是一个结构良好一致的对象所组成。可以使用对象的属性及方法对这些对象进行操作、创建和删除。 在VB数据库管理中数据的集合对象存在两类:一类是用于数据库结构的维护和管理,有三种集合:如,表集(TableDefs)、字段集(Fields)和索引集(Indexes);一类是数据存取对象的记录集:Recordset。每个集合对象都可以看作是一个数组,并按数组的方法来调用。一旦数据库建立以后,就可以用这些集合来对数据库的结构进行修改和数据处理。 在这些集合中同样具有属性Count,利用它可对集合中的元素进行操作,如下面是打开一个数据库,并取得其内各表(Table)的具体特征的应用程序实例。可以得到各表:表名,字段名,字段的个数,字段的类型,表中记录的条数。
从以上的程序中可以清楚地看出:数据库、表、字段存在着层次关系。在VB中层次结构的顶部是Jet数据引擎(DBEngine对象),它是惟一不被其它对象所包含的数据访问对象。DBEngine对象拥有一个Workspaces集合,该集合含有一个或多个Workspace对象。每个Workspace对象有一个Database集合,该集合又有一个或多个Database对象。每个Database对象含有一个TableDfes集合,该集合又含有一个或多个TableDef对象,依次类推。集合的对象都是基于0的索引来访问的。 如:DBEngine.Workspaces(0).Databases(0).TableDefs(0).Fields(“CustName”) 建立自己的集合 VB中Collection类用于建立自己的集合。它的工作原理类似于C语言的链表,在使用时可以很方便地在其中进行数据的插入、删除,并且在使用了关键字以后,查询操作也变得简单了。建立集合后可以用Add方法添加项到集合,Remove方法从集合中删除项,Item方法检索集合中的特定项,Count属性反应集合中项的数目。 VB中旧的内部集合的索引大多是基于0的,即集合中元素的下标是从现0开始的,如上面所述的Forms、Controls和数据库上的集合等;Collection类建立的集合对象都是基于1的。 1、手工创建 用Add方法向中添加项:
其中的Key为关键字,是一个字符串的表达式,如果以整数为关键字则必须用CStr函数将其转换为字符串。Before和After用于指定添加项所放的相对位置。 如建立一数据结构,用保存学生学号,姓名和成绩。
这样这建立了数据结构,通过编写处理函数代码就可以对其中的数据进行处理输出,如成绩的排序、统计不及格人数等。 2、使用向导 同样建立上例中建立的自定义类型MyTpye和类Class1。在“项目(Project)”菜单中选取“增加类模块(Add Class Module)”,选择“VB类构造(VB Class Builder)”,在Cass Builder对话框中,选取栏中的“Add New Collection”按钮,选已存在的类clsData形成集合对象Collection1 类。 此时系统会自动生成Add,Remove,Item属性和Count方法。 通过定义:Public m_colData As New Collection1 ‘用于保存记录 调用Collecton1类中的Add方法,即可生成数据结构。 3、集合与数组的比较 集合和数组都可用下标来调用,但它们之间存在着区别和联系。 (1)相同点。它们都是数据元素的有序集,数组可以看作为限制了数据元素个数的集合。 (2)不同点。①元素的个数不同。数组的大小由创建时决定;集合的大小在创建时并不确定。 ②访问元素的效率不同:。集合相当于链表,查找元素时从集合的头一个开始,顺序向下,访问m_coData(99)要比访问_colData(1)慢得多;而数组元素在内存中是顺序存放的,访问m_coData(99)和访问m_coData(1)的时间是一样的。 结束语 集合是面向对象编程的一个很重要的特点,对于多个具有相同特征的对象可以用集合对象来处理,从而提高编程效率和界面的统一。 |
||||||
![]() ![]() |