第10章 VB与数据库
数据库是用于存储大量数据的区城,它通常包括一个或多个表。数据库应用成为当今计算机应用的主要领域之一。VB提供了功能强大的数据库管理功能,能够方便、灵活地完成数据库应用中涉及的诸如建立数据库、查询和更新等各种基本操作。本章讨论数据库的基本概念、VB中提供的Data控件、DBGrid控件、ADO Data控件的使用方法和SQL语言。
10.1 数据库概述
数据库用于存储结构化数据。数据组织有多种数据模型,目前主要的数据模型是关系数据模型,以关系模型为基础的数据库就是关系数据库。本节主要讨论关系数据库的相关概念。
10.1.1 关系数据库的基本结构
关系数据库以表的形式(即关系)组织数据。关系数据库以关系的数学理论为基础。在关系数据库中,用户可以不必关心数据的存储结构,同时,关系数据库的查询可用高级语言来描述,这大大提高了查询效率。
VB本身使用的数据库是Access数据库,可以在VB中直接创建,库文件的扩展名为.MDB。
下面讨论关系数据库的基本术语。
1. 表
表用于存储数据,它以行列方式组织,可以使用SQL从中获取、修改和删除数据。表是关系数据库的基本元素。表在我们生活中随处可见,如职工表、学生表和统计表等。表具有直观、方便和简单的特点。表10.1是一个学生情况表。
表10.1 学生情况表
学号 1 3 8 2 6 姓名 王华 李兵 马棋 孙丽 张军 性别 女 男 男 女 男 民族 汉族 汉族 回族 满族 汉族 班号 99001 99001 99002 99002 99001 218 Visual Basic程序设计导学 表是一个二维结构,行和列的顺序并不影响表的内容。 2. 记录
记录是指表中的一行,在一般情况下,记录和行的意思是相同的。在表10.1中,每个学生所占据的一行是一个记录,描述了一个学生的情况。
3. 字段
字段是表中的一列,在一般情况下,字段和列所指的内容是相同的。在表10.1中,如“学号”一列就是一个字段。
4. 关系
关系是一个从数学中来的概念,在关系代数中,关系是指二维表,表既可以用来表示数据,也可以用来表示数据之间的联系。
在数据库中,关系是建立在两个表之间的链接,以表的形式表示其间的链接,使数据的处理和表达有更大的灵活性。有3种关系,即一对一关系、一对多关系和多对多关系。
5. 索引
索引是建立在表上的单独的物理数据库结构,基于索引的查询使数据获取更为快捷。索引是表中的一个或多个字段,索引可以是唯一的,也可以是不唯一的,主要是看这些字段是否允许重复。主索引是表中的一列和多列的组合,作为表中记录的唯一标识。外部索引是相关联的表的一列或多列的组合,通过这种方式来建立多个表之间的联系。
6. 视图
视图是一个与真实表相同的虚拟表,用于限制用户可以看到和修改的数据量,从而简化数据的表达。
7. 存储过程
存储过程是一个编译过的SQL程序。在该过程中可以嵌入条件逻辑、传递参数、定义变量和执行其他编程任务。
10.1.2 数据访问对象模型
在VB中,可用的数据访问接口有3种:ActiveX数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。数据访问接口是一个对象模型,它代表了访问数据的各个方面。可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据。
为什么在VB中有3种数据访问接口呢?因为数据访问技术总是不断进步,而这3种接口的每一种都分别代表了该技术的不同发展阶段。最新的是ADO,它比RDO和DAO更加简单,而且是更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。
ADO控件是VB 6.0中文版提供的一个ActiveX控件,与旧版的Data控件相似。
第10章 VB与数据库 219 10.1.3 结构化查询语言(SQL)
对于VB中的关系数据库,一旦数据存入数据库之后,就可以用SQL(Structured Query Language,结构化查询语言)同数据库“对话”。通常都是用户用SQL来发问,数据库则以符合发问条件的记录来“回答”。查询的语法中通常都包含表名、域名和一些条件等。
10.1.4 数据库的分类
VB可以访问以下3类数据库:
(1)Jet数据库:数据库由Jet引擎直接生成和操作,不仅灵活而且速度快,Microsoft Access和VB使用相同的Jet数据库引擎。
(2)ISAM数据库:索引顺序访问方法(ISAM)数据库有几种不同的形式,如Dbase,FoxPro,Text Files和Paradox。在VB中可以生成和操作这些数据库。
(3)ODBC数据库:开放式数据库连接,这些数据库包括遵守ODBC标准的客户/服务器数据库,如Microsoft SQL Server,Oracle,Sybase等,VB可以使用任何支持ODBC标准的数据库。
10.1.5 ODBC和数据源
ODBC的全称为Open Database Connection,即开放式数据库连接,是Microsoft公司在1989年推出的连接外部数据库的标准。ODBC的优点是:
· ODBC提供了一个能访问大量数据库的单一接口。 · ODBC使客户应用程序的开发可以独立于后端服务器。 ODBC由以下部分组成,如图10.1所示。
SQL Server 数据库 ORACLE 数据库 FoxPro 数据库 SQL Server 驱动程序 ORACLE 驱动程序 FoxPro 驱动程序 ?? 客户应用程序 ODBC数据源 ODBC驱动程序管理器 图10.1 ODBC体系结构
220 Visual Basic程序设计导学 · 应用程序:是为了访问数据库而开发的前端,它通过ODBC的API来建立与数据库
的连接,并使用SQL命令操纵数据库。
· 数据源:用于描述数据库管理系统、远程操纵系统和网络之间的组合方式,其中远
程操作系统和网络并不是必需的。
· 驱动程序管理器:是应用程序和用户访问一个特定数据库所必需的驱动程序之间的
一个中介。
· 驱动程序:为迁移一个特定的数据库管理系统真正实现ODBC API。它建立与服务
器的连接,提交SQL查询,然后向应用程序返回结果集或出错信息。 一旦有了ODBC驱动程序,就可以创建应用程序需要的数据源。数据源的信息包括用于访问的驱动程序和数据库的名字,还要为数据源提供一个名字,以便在应用程序中引用它。
为了创建一个ODBC数据源,选择Windows 98系统的“开始”|“设置”|“控制面板”,双击选中“ODBC数据源”出现ODBC数据源管理对话框。
例如,为了建立Access的ODBC数据源,选择不同的DSN类型。单击“添加”,弹出选择数据库驱动程序对话框,从“选定您需要的驱动程序来安装数据库”的列表框中选择“Microsoft Access Driver(*.mdb)”,单击“完成”,出现如图10.2所示的对话框。在该对话框中输入数据源名“newstudent”,单击“选取”,选择数据库“E:\\vb\\student.mdb”。单击“确定”。这时返回ODBC数据源管理对话框,看到新添加的“newstudent”数据源,如图10.3所示。这样以后就可以在应用程序中使用该数据源了。
图10.2 “ODBC Microsoft Access安装”对话框
第10章 VB与数据库 221
图10.3 “ODBC数据源管理器”窗口
10.2 使用数据库管理器
VB提供了一个非常实用的工具程序,即可视化数据管理器(Visual Data Manager),使用它可以方便地建立数据库、数据表和数据查询。可以说,凡是有关数据库的操作,都能使用它来完成,并且由于它提供了可视化的操作界面,因此很容易掌握。
10.2.1 建立一个数据库
1. 启动数据库管理器
在VB集成环境中,单击“外接程序”菜单下的“可视化数据库管理器”命令,即可打开可视化数据库管理器“VisData”窗口,如图10.4所示。
“数据库管理器”窗口由菜单栏、工具栏、子窗口区和状态条组成,启动完成时,其子窗口区为空。
2. 建立Jet数据库 建立Jet数据库的步骤如下: