畅快车贷官网:VB数据库(例子)

来源:百度文库 编辑:中财网 时间:2024/03/28 20:30:44
用Visual Basic 5.0作为数据库开发平台
        3.0版以后的Visual Basic具有数据库连接和数据处理功能,因此完全有资格作为数据库应用程序的开发环境。Microsoft公司把许多新的数据访问功能加到Visual Basic中,使得该产品成为桌面数据库市场中Access、FoxPto及Paradox for Windows的直接竞争者。与普通的数据库系统相比,用Visual Basic作为数据库开发平台有以下优点:
(1)简单性。Visual Basic提供了数据控件,利用该控件,用户只要编写少量的代码甚至不编写任何代码就可以访问数据库,对数据库进行浏览。
(2)灵活性。Visual Basic不像一般的数据库(如Access)那样局限于特定的应用程序结构,也不需要用某些指令对当前打开的数据库进行操作,因而比较灵活。
(3)可扩充性。Visual Basic是一种可以扩充的语言,其中包括在数据库应用方面的扩充。在Visual Basic中,可以使用ActiveX控件(以前版本中称为VBX或OLE控件),这些控件可以由Microsoft公司提供,也可以由第三方开发者提供。有了这些控件,可以很容易地在Visual Basic中增加新功能,扩充Visual Basic数据存取控制的指令系统。在其它数据库开发平台中,目前还不具备ACtiveX控件。

用Visual Basic 5.0作为数据库前端
        数据库前端是一个计算机应用程序,用该程序可以选择数据库中的数据项,并把所选
择的数据项按用户的要求显示出来。数据库系统本身被称为后端,后端数据库通常是一个关
系表的集合。
之所以选择Visual Basic作为开发数据库前端应用程序的工具,主要是因为Visual Basic
可以和多种数据库连接。也就是说,目前较为流行的大多数数据库都可以与Visual Basic连
接,因而可以用Visual Basic开发相应的前端应用程序。
Visual Basic通过不同的方式与各种数据库进行连接,主要有三种方式,即Access数据
库引擎、MicrosoftODBC驱动程序、第三方ODBC驱动程序。
1.Access数据库引擎
ACcess是Visual BasiC的“内部数据库”,即在Visual Basic中可以直接建立Access数
据库。同时,通过Access数据库引擎,还可以使用下列数据库:
·Btrieve(.DAT)
·dBASE(.DBF/.NDX)
·Foxpro(.DbF/.CDX/.NDX)
·Paradox(.DB, .PX)
2.Microsoft ODBC
通过’Microsoft ODBC驱动程序,可以使用下列数据库:
·Microsoft SQL Server
·Oracle
·Sybase SQL Server
Excel(.XLS)
Text(.TXT)
Access(.MDB)
Btrieve
DBASE
FoxPro
Paradox
上面所列的数据库中,除前三种外,其余数据库均包含在一套Microsoft ODBC桌面数据库驱动程序及Microsoft
Query 中。

第三方 ODBC
通过第三方ODBC驱动程序,Visual Basic可以和下列数据库连接:
Digital Rdb
Gupta SQL Base
HP AllBase/SQL
HP IMage/SQL
IBM DB2,DB2/2
IBM OS/2 DBM
IBM SQL/DS
Informix
Ingres
NCR Teradata
Netware SQL
Progress
Tandem Nonstop SQL
Watcom SQL
XDB
在上面所列的数据库中,初Digital公司的Rdb提供的ODBC驱动程序及Watcom SQL驱动程序之外,其余驱动程序
都是Q+E software的产品。
包含在Visual basic专业版和企业版中的Microsoft ODBC Adminstator可以与Microsoft SQL Server,
sybase Server 以及Oracle客户服务器关系数据库管理系统连接;通过Microsoft ODBC桌面数据库驱动程序,
甚至可以象使用数据库表一样使用文本文件和Excel工作表。 从前面的介绍可以看出,可以为各种类型的数据库管理系统编写Visual Basic前端。事实上,使用ODBC驱
动程序,可以建立与几乎任何数据库管理系统连接的应用程序。这一节中,将介绍可以与Visual Basic数据库应用程序一起使用的几种数据库管理系统。

普通的关系数据库管理系统
        普通的关系数据库管理系统(RDBMS)一般是指传统的桌面RDBMS,以dBASE,Paradox为代表,这类数据库系统对每个表和索引使用单独的文件,并使用定长的记录。建立数据库时,可以指定每个字符(Character)数据类型字段的最大尺寸,当字段的值最大尺寸小时,多余的字符位置用空白填充。与dBASE,Paradox不同,Btrieve表提供变长录字段,当字段内的数据长度变化较大时,变长字符字段可以节省大量的磁盘空间。如果磁盘上的某个目录中含有多个信息文件(.INF),则应为每个信息文件中的每个表指定所使用的索引。信息文件的扩展名为,INF,其文件名与表(库)文件名相同。对于dBASEFoxko需要使用 .INF文件,而对Paradox或Btrieve来说则不需要。在建立一个dBASEFoxno表时,visual Basic自动建立.INF文件。为了与 .DBF 文件一起使用已有的.MDX或 .NDX索引文件,可以用文本编辑器(如“记事本”)建立 .INF文件。

客户/服务器数据库管理系统
       讲入90年代以后,由于大型机和小型机数据库管理系统的用户希望“削减”其信息系统的开支,用相对廉价的文件服务器(多数基于PC体系结构)来代替维护费用十分高昂的大型机,小型机硬件及数据库软件产品,从而导致客户/服务器数据库市场迅速扩大。前端是伴随客户/服务器数据库管理系统出现的,前端指的是在工作站上运行的客户程序,而工作站则与局域网络(LAN)或广域网络(WAN)上的服务器(后端)相连。分布式客户/服务器系统是今后的主要发展趋势。在分布式数据库系统中,含有满足查询条件的数据的表,这些表可以放在不同的服务器中,而服务器可以放在广域网的不同地方。在客户/服务器的RDBMS中,服务器部分的操作系统与客户机上的操作系统可以相问,也可以不同。在实际的客户/服务器系统中,不相同的情况可能占多数。客户/服务器系统与桌面数据库管理系统有很大的不同,其中最主要的区别是所有由前端应用程序发出的SQL语句都在服务器上执行,即服务器负责执行所有由工作站送入服务器的SQL语句。如果从工作站上向服务器发出一个肋 Select 查询,则只有满足查询条件的记录被返回到客户工作站。此外,服务器还处理与并行性、一致性有关的问题。如果服务器不能完成工作站发出的查询操作,则向工作站返回一个出错信息。
大多数客户/服务器RDBMS把所有的数据库存储在一个文件中。必要时,文件可在服务器计算机之间进行划分,但服务器的操作系统仍把分开的文件作为一个文件处理。客户/服务器RDBMS还具有其它复杂的功能,例如支持事务记录。当出现重大的硬件或软件故障而导致系统崩溃时,事务记录可以使数据库重建。此外,目前大多数客户/服务器系统使用硬盘阵列和镜象硬盘,这样可以减少由于某个硬盘驱动器出现故障而造成停机的可能性。为了把Visual Basic数据库应用程序与客户/服务器相连接,最简单的办法是使用合适的ODBC驱动程序。

Microsoft数据库管理系统Access
        Microsoft Access也是一种桌面数据库管理系统,但它与传统的桌面数据库管理系统完全不一样。Access 是 Visual Basic的内部数据库,即缺省数据库类型。这里的“内部”有两方面的含义:一是用Access建立的数据库(.MDB)可以在Visual Basic中使用;二是用Visual basic可以直接建立Access数据库。因此,在Visual Basic中,“Access数据库”和“Visual Basic 数据库”含义相同。Access数据库文件的结构是以Microsoft SQL Server数据库文件结构为基础的特点主要包括:
(1) 一个数据库的所有表和索引都存储在一个.MDB文件中,Text(文本)、Memo(备注)和OLEObject(OLE对象)等数据类型字段的长度都是可变的,Access调整数据字段的大小以容纳相应的数据类型。
(2) 数据字段可以含有时间信息,Date类型的字段对应于SQL—92的Timestamp数据类型,但不以Timestamp 的格式存储。
(3) Access支持空值,即Null(与空字符串不同)。Null是Visual Basic的保留字,用它来指明表的数据单元中没有数据进入。所有的客户/服务器数据库都支持Null值,但除了Access外,其它桌面数据库几乎都不支持Null值。
(4)在Access中,Memo字段作为Text类型来处理,其长度可达1.2GB。
(5)可以在Access中存储QueryDef(查询定义)对象,它与被编译为SQL Server存储过程的SQL SELECT语句类似。
(6)Access提供了长二进制(LargeBinary)对象(BLOB),其大小仅受数据库大小的限制,不受 .MDB文件结构的限制;而数据库的大小仅受硬盘容量的限制。可以在Access表的BLOB字段中存储任何类型的数据(包括多媒体数据),并可用Get Chunk和Append方法对BLOB字段的数据进行读写操作。
(7)Access数据库具有较强的安全性。
以上介绍了可以在Visual Basic中使用的几种数据库管理系统。实际上,如果有合适的软件和硬件,包括网关(Gateway)和中间件(Middleware),则可以连接流行的大型机和小型机RDBMS,如IBM的DB2、Digital Eqipment的Rdb等。除网关外,还应为需要连接的大型机或小型机数据库选择合适的ODBC驱动程序。

       下面我们着重介绍一下数据库的结构。数据库是相关数据的集合,一个数据库含有各种成分,包括表、记录、字段、索引等。
1.数据库(Database)
Visual Basic中使用的数据库是关系型数据库(Relational Batabase)。一个数据库由一个或一组数据表组成。每个数据库都以文件的形式存放在磁盘上,即对应于一个物理文件。不同的数据库,与物理文件对应的方式也不一样。对于dBASE,FoxPro和Paradox格式的数据库来说,一个数据表就是一个单独的数据库文件,而对于Microsoft Access、Btrieve格式的数据库来说,一个数据库文件可以含有多个数据表。
2.数据表(Table)
简称表,由一组数据记录组成,数据库申的数据是以表为单位进行组织的。一个表是一组相关的按行排列的数据;每个表中都含有相同类型的信息。表实际上是一个二维表格,例如,一个班所有学生的考试成绩,可以存放在一个表中,表中的每一行对应一个学生,这一行包括学生的学号,姓名及各门课程成绩。
3.记录(Record)
表中的每一行称为一个记录,它由若干个字段组成。
4.字段(Field)
也称域。表中的每一列称为一个字段。每个字段都有相应的描述信息,如数据类型、数据宽度等。
5.索引(Index)
为了提高访问数据库的效率,可以对数据库使用索引。当数据库较大时,为了查找指定的记录,则使用索引和不使用索引的效率有很大差别。索引实际上是一种特殊类型的表,其中含有关键字段的值(由用户定义)和指向实际记录位置的指针,这些值和指针按照特定的顺序(也由用户定义)存储,从而可以以较快的速度查找到所需要的数据记录。
6.查询(Query)
一条SQL(结构化查询语言)命令,用来从一个或多个表中获取一组指定的记录,或者对某个表执行指定的操作。当从数据库中读取数据时,往往希望读出的数据符合某些条件,并且能按某个字段排序。使用SQL,可以使这一操作容易实现而且更加有效。SQL是非过程化语言(有人称为第四代语言),在用它查找指定的记录时,只需指出做什么,不必说明如何做。每个语句可以看作是一个查询(query),根据这个查询,可以得到需要的查询结果。
7.过滤器(Filter)
过滤器是数据库的一个组成部分,它把索引和排序结合起来,用来设置条件,然后根据给定的条件输出所需要的数据。
8.(view)
数据的视图指的是查找到(或者处理)的记录数和显示(或者进行处理)这些记录的顺序。在一般情况下,视图由过滤器和索引控制。
        下一节我们将用VB编一个简单的浏览数据库的程序。事实上这个例子并不需要编写代码,只是调用VB的固有控件,你将深刻体会到用VB编程的简单易学,功能强大。用数据库可以建立访问数据库的应用程序,这样的程序可以显示、编辑和更新各类已有的数据库中的信
息,包括Microsoft Access、Btrieve、dBASE,Microsoft,FoxPro及Paradox等。同时,用数据控件可以像访问数据库一样访问Microsoft Excel、Lotusl—2—3和标准ASCⅡ文本文件。此外,用数据控件还可以访问和操作远程的开放数据库互连(ODBC)数据库,例如Microsoft SQLServer和Oracle。
数据控件和其它控件—样,可以把数据控件添加到窗体中,以建立数据库应用程序;可以根据需要
在窗体上建立多个数据控件,不过,对每个需要操作的数据表一般使用一个致的数据控件。使用数据控件不用编写代码就可以实现下列操作:
·与本地或远程数据库建立连接。
·对连接的数据库执行SQL查询、打开指定的数据表或定义记录集。
·把数据字段传送到各种约束控件,并可在约束控件中显示或修改数据字段的值。
·根据约束控件中数据的变化,添加新记录或更新数据库。
·捕获访问数据时出现的错误。
·关闭数据库。

一个简单例子(使用数据控件)

我们通过一个简单例子来说明数据控件的一般用法。在这个例子中,将浏览一个数据库中的数据。为了在
应用程序中使用数据控件,可以按如下步骤操作:
(1)执行“文件”菜单中的“新建工程”命令,建立一个新工程。
(2)在工具箱中选择数据控件图标,然后在窗体上画一个数据控件。
(3)通过属性窗口设置数据控件的属性(见表) 属 性 设置值 Caption Data1 Connect Access DatabaseName "c:\dbmdb\db1.mdb"(数据库的路径) Readonly True RecordSetType 0-Table RecordSource Table1


Connect属性用来指定所链接的数据库,在属性窗口中,单击该属性右端的箭头,将下拉显示可以链接的数
据库管理系统, 可从中选择一种。基于Microsoft Access格式的数据库应选择“Access”。
DatabaseName 属性用来设置要打开的数据库的名字。可以直接输入,也可以单击右端的“...”,在打开
的对话框中选择所需要的数据库的文件名。
如果把ReadOnly属性设置为 True,则只能读取数据库中的数据,不能修改。如果想修改数据库中的
数据,则必须把该属性设置为False。
RecordsetType 属性用来设置RecordsetType 对象的类型,有三种类型,0-table,1-Dynaset,2-snapshot。
可从中选一种。
RecordSource 属性用来指定所使用的表名,单击右端的箭头,将下拉显示数据库中的所有的表名可从中选择
所需的表。

(4)在窗体上画7个标签和7个文本框,各文本框属性如下:

对象 属性 设置值 对象 属性 设置值 文本框1 DataFiled 编号 文本框2 DataFiled 姓名 Datasource Data1 Datasource Data1 Text 空白 Text 空白 文本框3 DataFiled 性别 文本框4 DataFiled 出生日期 Datasource Data1 Datasource Data1 Text 空白 Text 空白 文本框5 DataFiled 职务 文本框6 DataFiled 文化程度 Datasource Data1 Datasource Data1 Text 空白 Text 空白 文本框7 DataFiled 工资   Datasource Data1 Text 空白

DataFiled 属性是要显示表中字段的名字,DataSource属性是数据控件的名称(Name 属性)。必须先设置
DataSource属性,然后才能设置DataField属性。单击DataField属性从下拉菜单中选择需要的字段名。
7个标签的Caption属性分别设置为“编号”,“姓名”,“性别”,“出生日期”,“职务”,“文化程
度”,“工资”。
(5)单击工具条的运行按扭或按F5以运行程序,通过数据控件(Data1)的前后按扭来浏览数据库的内容。
(6)单击VB菜单的“文件”选项的“保存工程”,保存后在“文件”菜单中选“生成xxx.exe文件”(xxx是
文件名)编译成可执行文件。这样的.exe文件可脱离VB的编程环境运行。
    VB数据库编程入门讲座到此就告一段落,有关VB编程的语法规则已有许多资料介绍,它也不是本站介绍的主要内容,请网友自行学习。本站今后将陆续介绍一些与数据库编程有关的控件,到时欢迎浏览。另外本站的“VB数据库”专栏介绍了一些数据库编程的高级部分,如:多机环境下的数据库编程,网络数据库的编程及编程的经验一并欢迎光临。(完)