网球

非access数据库在vb中的编程及应用(3)

2019-12-04 10:11:59来源:励志吧0次阅读

三 、数据存取对象变量对外来数据库编程的方法及其实例

在vb专业版数据库编程的三种方法中,第二种—使用数据库存取对象变量(dao)的方法最具有功能强大、灵活的特点。它能够在程序中存取odbc2.0的管理函数;可以控制多种记录集类型:dynaset,snapshot及table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如tabledefs,fields,indexes及querydefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。由于vb中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非access数据库中也可以使用数据库存取对象变量的方法。因而对foxpro等外来数据库而言,使用数据库存取对象变量的方法同样也是一种最佳的选择。

有一点需要注意的是,vb的标准版中仅能使用数据控件(data control)对数据库中的记录进行访问,主要的数据库存取对象中也仅有database、dynaset对象可通过数据控件的属性提供,其它的重要对象如tabledef、field、index、querydef、snapshot、table等均不能在vb的标准版中生成,所以使用数据存取对象变量的方法只能用vb3.0以上的专业版。

非access数据库的新建及库结构的修改

vb专业版中的数据库存取对象变量可以分为两类,一类用于数据库结构的维护和管理,另一类用于数据的存取。其中表示数据库结构时可以使用下面的对象:database、tabledef、field、index,以及三个集合(collection):tabledefs、fields和indexes。每一个集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据处理。

对于非access数据库,大部分都是对应于一个目录,所以可以使用vb的mkdir语句先生成一个目录,亦即新建一个数据库。而每一个非access数据库文件可看作是此目录下的一个数据表(table),但实际上它们是互相独立的。

下面是新建一个foxpro2.5格式数据库的程序实例。

sub createnew ( )

dim db1 as database , td as tabledefs dim t1 as new tabledef , f1 as new field , f2 as new field , f3 as new field

dim ix1 as new index

dim path as string

const db_text = 10 , db_integer = 3

chdir "\" path$ = inputbox( " 请 输 入 新 路 径 名 : ", " 输 入 对 话 框 " ) mkdir path$

’ 新 建 一 个 子 目 录

set db1 = opendatabase(path$, true, false, "foxpro 2.5;")

set td = db1.tabledefs t1.name = "mydb"

’ 新 建 一 个 数 据 表 , 数 据 表 名 为 mydb

f1.name = "name" , f1.type = db_text , f1.size = 20 f2.name = "class" , f2.type = db_text , f2.size = 20 f3.name = "grade" , f3.type = db_integer t1.fields.append f1

’ 向 数 据 表 中 添 加 这 些 字 段 t1.fields.append f2

分享到: