扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
三 、数据存取对象变量对外来数据库编程的方法及其实例
在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
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者