微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic 来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
4.2 客户/服务器结构的特点
安全性高:数据的对话完全由数据库服务器来进行,而不需产生多个数据库内容的备份,因此数据的访问操作较为可靠安全.
扩充性佳:对于想要将更多的用添加到网络系统中,客户/服务器结构模式可以很容易满足添加的需求。
提高操作效率:使用客户/服务器结构工作模式将大幅度提高操作的速率。特别是对于那些只有低运行速度的工作站的系统,运用较高级的服务器就能够有效改善数据访问速度。
传输效率佳:客户/服务器结构模式完全根据需求进行数据的传递,大量减少网络的通信量,明显提高数据传输效率。
4.3 远程数据访问
在VB中,用数据库引擎和数据访问对象DAO可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键,本文将介绍在VB中用DAO通过数据库引擎访问远程数据库的方法。 用DAO访问远程数据库可以通过三步来实现,即数据连接、数据处理和断开连接。下面主要介绍数据连接和数据处理的具体操作。 4.4 数据连接 DAO通过链接远程表的方式来进行数据连接。这样,数据虽然驻留在远程数据源上,但在本地的数据库中可以存储与远程数据的永久性连接,同时缓存链接的表结构信息,从而在下一次访问该表时, 不用再次从服务器中检索这些结构信息,加快了连接速度。一旦链接了一个表,该链接便会保留在各会话期间,直到连接断开。链接远程表的具体操作是:
用 Open Database 方法打开将要包含该链接的本地数据库,用 CreateTableDef 方法在该数据库中创建一个新的TableDef对象,将 TableDef 对象的 Connect 属性设置为一个合法的连接字符串,标识要访问的远程数据库类型、数据文件的路径以及用户名和远程数据源密码等。将 TableDef 对象的 SourceTableName 属性设置为远程数据库中要访问的表的名称。 添加 TableDef 对象到 TableDefs 集合中。
数据处理
数据连接建立后,可以用 OpenRecordset 方法打开一个记录集,并可用 DBGrid 控件和 Data 控件方便地浏览整个记录集。如果使用表类型(Table-type)记录对象,则对应的是一个实际存在的数据库表,在多用户环境下,其它用户对数据的修改会立即反映到表中;如果使用动态集类型(Dynaset-type)记录对象,则对应的既可以是一个表中全部记录,又可以是一个查询的结果,并且可以更新记录集中的记录;如果使用快照类型(Snapshot-type)记录对象,则对应的可以是表中的全部记录,也可以是一个查询结果,但不能进行记录的增加、删除和修改操作。此外,还可以建立其它类型的记录对象,如仅向前型(Forward Only-type)记录对象和动态型(Dynamic-type)记录对象。
断开连接可以通过关闭应用程序或设置连接超时来实现。注意:如果对数据库对象使用 Close方法,则由于在 Microsoft Jet 数据库引擎内部缓存了连接,实际上连接并未取消。
客户端利用Winsock的Send Data方法将待查内容发送到服务器端,服务器端利用data控件对数据库进行查询,最终利用Winsock的Send Data 方法将查询结果发送到客户端。
第五章 系统的功能及结构
5.1系统的功能
1. 卡管理,查询,报表,系统管理
2. 较强的操作性,快捷方便
3. 可设置大金额密码功能
可按人分部门设置管理限权
可多机联网使用
6. 可24小时全天候运营
可备份,还原数据
具有日志功能
5.2 系统的总体结构图
5.3系统所用数据库和表
5.3.1数据库为:Access2000
库名:gly.mdb ykt.mdb
5.3.2表名及字段设置
gly.mdb管理员
表 管理员
字段名称 管理代码 管理密码 管理权限
字段值 字符 字符 字符
ykt.mdb
字段名称 字段值
卡号 字符
学号 字符
系别 字符
班级 字符
姓名 字符
金额 字符
身份 字符
标记 字符
日期 字符
补办标记 字符
字段名称 字段值
卡号 字符
消费金额 字符
日期 字符
预付金额 字符
各模块的详细介绍
6.1登录模块
6.1.1 设计思想
运用操作员代码和操作员口令进行系统的初步登录,并根据相应的操作代码分配相应的管理权限。
6.1.2 模块功能
进行系统的登录时,用户和密码都将以“*”显示,这样可以为系统提高一定的安全性,系统还具体管理权限的分配。
6.1.3 相关代码
系统登录相关代码:
Data1.RecordSource = "select * from 管理员 "
Data1.Refresh
Data1.Recordset.FindFirst "管理代码= '" & (Text1.Text) & "'"
If Data1.Recordset.NoMatch Then