资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
VBVB 数据库设计技术讲座数据库设计技术讲座在 VB 中,访问数据库一般有两种方式。一是非编码方式,主要通过 Data 等控件,可以不需要任何编程,只需简单设置控件的一些属性并结合文本框等普通控件即可方便地显示和操作数据库中的数据。二是通过编写代码,即利用数据访问对象(DAO)来实现。虽然编写代码要花费更多的时间与精力,但却可以实现更灵活更复杂的操作。 首先介绍几个常用的 VB 数据库概念: 表(Table):即关系数据库中物理存在的二维表。VB 的一个数据库文件可以包含相关的多个二维表。在成功打开一个数据库之后,必须打开一个表才能对其中的数据进行操作。 记录集(RecordSet):来自表中的记录或者执行一个查询而产生的记录,这些记录就组成了一个记录的集合。在 VB 中数据库表中的数据不允许直接访问,而只能通过创建于内存中的这些记录集进行记录的浏览与操作。 SQL 语言:一种数据库管理中的通用结构化查询语言。 现在介绍一下 VB 中的“可视化数据管理器(Visual Data Manager) ” 。可视化数据管理器具有进行数据库的创建、查看、修改库结构以及输入记录等功能。下面介绍如何利用它建立一个完整的数据库文件。 一、创建表 1 从“外接程序”选单中,选择“可视化数据管理器” ,这时出现 VisData 可视化数据管理器窗口。分别移动鼠标指针到工具栏上的前三个按钮,系统会提示要以何种记录集类型来访问 VB 数据库:一是“表类型记录集” ,二是“动态集类型记录集” ,三是“快照类型记录集” 。我们先选择“动态集类型记录集” 。 2 从“可视化数据管理器”的“文件”选单中选择“新建” ,选择“MicroSoft Access”类型,再选择“版本 7.0MDB” 。 3 选择保存库文件的目录(设把文件保存在 C 盘的根目录中,文件名为 Myfile)。 4 这时出现“数据库”窗口,此时数据库已存在,但还不包含任何的表名以及字段定义等表结构。点击右键,选择“新表” ,添加一个新表,出现“表结构”对话框,在“表名”框中输入表名(本例表名为 Phone) 。 5 单击“添加字段”按钮,显示“添加字段”对话框。按要求分别定义“字段名” 、“类型”及“大小” 。先输入第一个字段,然后按“确定” ,反复这一过程,直到输入全部的字段(本例字段分别为“序号” , “Long” , “4” ;“姓名” , “text” , “8” ;“电话” , “text”,“15” ;“地址” , “text” , “30” ) 。 6 单击“关闭” ,从“添加字段”对话框退回到“表结构”窗。点击“生成新表” ,保存表结构。 7 在“数据库”窗双击新建的表名,按“添加”开始向表中添加记录,完毕后按“更新” 。反复这一过程,向表中多增添几个记录。 8.在数据库中再建一个表,表名为 Article。表包含字段为“序号” , “Long” , “4” ;“作品” , “text” , “15”(为了简单起见表中只有两个字段)。向表中增加几条记录,比如序号 1 对应有多个作品,序号 2 也有多个作品。 二、增加索引 右键单击 Phone 表名,选择“设计” ,在表设计窗口的底部,单击“添加索引”按钮,可打开“添加索引到”对话框。 从“可用字段”列表中选择要进行索引的字段名放到“索引字段”列表中,根据需要选中“主要的” 、 “惟一的” 、 “忽略空值”复选框中的一个或多个的组合,在“名称”中加入索引名,保存该索引。 三、SQL 查询 在“可视化数据管理器”中打开一个库文件,在弹出“数据库”窗口的同时,在其后面会弹出一个“SQL 语句”对话框。把其变为当前窗口,可在其中输入 SQL 语句,比如:select phone.姓名,article.作品 from phone,article where phone.序号=article.序号。然后点击“执行”按钮,弹出对话框提问“这是 SQL 传递查询吗?”直接回车,选择默认选项“否” ,确认查询,即可从两个表中提取满足条件的记录信息。还可以点击“清除”按扭清除框中的查询语句或按“保存”在数据库中保存此查询。值得注意的是,查询中保存的只是查询定义语句,而并未物理保存这些被查询的记录数据。 在非编程方式下,窗体上的约束数据控件如果没有通过 Data 控件或等价的数据源控件(比如 RemoteData 控件)是不能自动访问数据库中的数据的。我们可以通过 VB 提供的 Data 控件来执行大部分数据访问操作,而且不用编写代码。Data 控件在打开数据库时自动创建一个动态记录集,我们通过对记录集的操作来对表进行记录的增加、修改和删除。与 Data 控件相连结的约束数据控件,自动显示来自记录集当前记录的一个或多个字段的数据。如果 Data 控件被指示移动到另一个记录,则所有被连结的约束数据控件自动把当前记录的任何改变传递给 Data 控件,以保存在数据库中。 对 Data 控件的引用控制可以通过属性窗方便地进行各属性的设置,也可以在过程代码窗中进行属性和方法的设置与引用。下面通过一个实例来加以说明。 一、Data 控件的属性 1 建立一个新的“标准 EXE”项目。分别在窗体上放置三个 Label 控件、三个 Text控件、一个 Data 控件、四个 Command 控件。三个 Label 控件的 Name 属性分别为“LblName、LblPhone、LblAddress” ,Caption 属性分别为“姓名、电话、地址” 。三个Text 控件的 Name 属性分别“TxtName 、TxtPhone、 TxtAddress” ,Caption 属性都为空(“) 。四个 Command 控件的 Name 属性分别为“CmdFirst、CmdPrevious、 CmdNext、 CmdLast” ,Caption 属性分别为“首记录、前记录、后记录、末记录” 。 2 选择 Data 控件后,找到属性窗(Properties)中的 DatabaseName 属性,单击按钮打开对话框,选择在上一讲中所建立的数据库文件( C:Myfile)。 3 找到 RecordSource 属性,打开下拉选单选择可用项目,其中有库中的所有表格,选择 Phone 表。 4 选择第一个文本框(TxtName) ,在属性窗口中找到其 DataSource 属性,将其设置为 Data1。 5 选择并点击 TxtName 的 DataField 属性,其中包含 Phone 表中所有的字段。将这个文本框的 DataField 属性设置为 Phone 表中的“姓名” ,将另外两个文本框的 DataSource 属性也设置为 Data1,将其 DataField 属性分别设置为“电话”和“地址” 。 6 运行后,分别点击 Data 控件的四个按钮,它们代表 “第一个记录” 、 “前一个记录”、 “后一个记录” 、 “最后一个记录” ,观察文本框内容的变化。 Data 控件的 RecordSource 并不一定只是指定一个实际存在的表。如果你了解结构化查询语言 SQL,则也可以在属性窗或代码中把它设置为一个 SQL 查询。 二、Data 控件的方法 “方法”可以完成直接利用 Data 控件四个按钮无法完成的功能。Data 控件的方法主要是移动、查找和修改三大类。这些操作是通过 Data 控件初始时所创建的记录集(Recordset)来完成的。 移动类方法类似 Foxbase 中移动记录指针,把所指记录变为当前记录。例如:按CmdPrevious、CmdNext 命令按钮后对应向前或向后移动纪录指针: Private Sub CmdPreviousClick() Data1.Recordset.Previous 把当前记录指向前一个 If Data1.Recordset.BOF then 如果已经指向到首记录的前一位置 Data1.Recordset.MoveFirst 则要指向到首记录,以防超出记录集 End If End Sub Private Sub CmdNextClick() Data1.Recordset.Next 把当前记录指向后一个 If Data1.Recordset.EOF then 如果已经指向到末记录的后一位置 Data1.Recordset.MoveLast 则要指向到末记录,以防超出记录集 End If End Sub BOF 和 EOF 也是记录集的两个属性,标识当前记录位置是否在第一条记录之前或在最后一条记录之后。 Find 方法是用来查找记录集中的特定记录,格式为:Recordset.FindFirst 表达式。表达式中可用普通的运算符,还可用 Like 运算符查找匹配某个模式的记录。比如想查询记录集姓名字段中是否包含“潘”姓的人员,可加入代码: Data1.Recordset.FindFirst ”姓名 LIKE 潘“ If data1.Recordset.NoMatch then MsgBox “无法找到匹配的记录“ Else MsgBox “已经找到匹配的记录“ EndIf NoMatch 是记录集的另一个属性,用来标志是否找到指定的记录,如果指定的记录未找到则值为 True,否则为 False。在第一讲已经介绍过 VB 数据库中可以包括多于一个的表,其实除了表之外,VB 数据库还可以包含查询定义、记录集、关系等可操作的元素,每个元素用一个对象名表示,可利用对象的属性和方法进行访问。VB 数据库就是通过这些对象按照一定的层次结构组合而成的。在 VB 数据库中的表、查询、记录集、关系等对象可能都不只一个,而是由多个组成一个同性质的对象集合,在层次结构图中,为那些可以多个组成一个集合的对象名后加(s) ,比如,可有多个 Database 对象就表示为 Database(s)在这些对象中,最高顶级的 DBEngine对象只有惟一的一个。了解这个层次结构图,就可以知晓数据库中每个对象所在的层次位置,比如 RecordSet 对象包含在 Database 对象中;并且借助该表还能方便直观地写出访问这些嵌套对象的语法。比如:Debug.Print VBdatabase.Recordsets. Count 表明引用所定义的 VBdatabase 数据库对象下的 Recordsets 对象集合中的 Count属性,即在“立即”窗中打印出数据库对象中包含的记录集的个数。 以下介绍常用对象的具体概念、定义和引用方法。 数据访问对象 (Data Access Object) VB 对数据库中各元素的操作都要通过定义相应类型的数据访问对象,让其与 VB 所提供的各种元素相关联,然后通过引用这些对象的属性和方法进行对象的访问,对象类似高级语言中所定义的变量。VB 常用有以下几种对象: 1. VB 数据库引擎对象(VB DBEngine Object):在对象层次结构模型中处于最高顶级的一个对象,是 VB 的数据库管理系统(DBMS) ,它在用户信息库和系统信息库中检索和保存数据; 2.工作空间对象:(WorkSpace Object):VB 数据库引擎访问数据源的工作区。 3.数据库对象(Database Object): 代表一个已打开的数据库,数据库对象是对数据库实施操作时首先要使用的对象。可用 OpenDatabase 函数打开一个库。 4.表对象(TableDef Object):代表数据库中已定义和存在的一个表。与数据库对象类似,要操作一个表,首先要定义一个表对象,使其和特定的表相对应,然后引用它的属性和方法,比如通过 Name 属性可得到表的名称,Count 属性可得到表的个数等。 5. 查询对象(QueryDef Object):代表数据库中存在的一个查询定义。 6.记录集对象(Recordset Object):VB 表中的记录不允许直接操作,必须通过记录
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号