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