电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现
表4.1DriverInfo表字段信息说明 序号 1 2 3 4 5 6 7 8
名称 ID DriverSN DriverID DriverName DriverTel DriverMark 数据类型 int nvarchar(40) nvarchar(64) nvarchar(40) nvarchar(64) nvarchar(64) 约束 可空 √ √ √ √ 默认值 '' '0' '12' '2000-1-1' 说明 DriverAddress nvarchar(128) DriverJCTime nvarchar(128)
表4.1PassInfo表字段信息说明 序号 1 2 3 4 5 6 7
名称 ID UserSN UserName Pass Man Tel Role 数据类型 int nvarchar(40) nvarchar(40) nvarchar(20) nvarchar(64) nvarchar(64) 约束 可空 默认值 说明 nvarchar(128)
4.3数据库的详细设计
启动SQL2000后,屏幕出现“Microsoft SQL Server 2000”对话框,在对话框中选择不同的选项按钮,可新建或打开数据库。在此选择“建立数据库”,新建一个空的数据库,名字保存为CarMgr。在已有的数据库中创建空表主要有三种方法:将数据直接输入到空白的数据表中,当保存新的数据时,SQL Server 2000将分析数据并且自动为每一字段指定适当的数据类型及格式。使用“设计”视图从无到有指定表的全部细节。使用表向导来选择表的字段,这些字段可以从各样预先定义好的表中选择。此系统的数据库使用“设计”视图从无到有创建。
再次数据库中需要创建两个表,分别存放用户信息表、工作人员信息表、缴费信息表、费率信息表等。以创建用户信息表为例,步骤如下:
15
电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现
(1)右击“表”图标,选择新建表,将显示一个空数据表的设计视图。 (2)按照下图所示定义表中的每一个字段。在“字段名称”列中分别输入;在“数据类型”列中选择各字段的数据类型,当光标移动到“数据类型”列时,光标所在的格中将出现下拉按钮,单击按钮将弹出下拉列表,其中列出了所有的数据类型(如图所示),单击选定所需要的数据类型;“说明”列用于输入对字段的说明,可有可无。
(3)保存表。保存时输入表的名称“UserInfo”。
(4)当我们需要将该表设置为主键时,该字段左边的灰色字段选择器上出现一个钥匙图案,表明主关键字已经被选取。
此时用户信息表就创建好了,同样可以创建其他类型表。 4.3.1 数据流图
下面用我们用数据流图(DFD, Data Flow Diagram),也就是从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。如下图所示:
16
电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现
4.3.2在本系统中使用ADO的过程及详解添加ADO数据源
本系统采用ADO来访问SQL数据库,这里充分应用了C++类封装的功能,根据本系统应用的范围,将访问数据库的功能函数封装在一个类CMyDatabase。
正如前所述,ADO是访问数据库的一个方法,它提供了不同的接口。ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。
_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_RecordserPtr来实现。而用_ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordserPtr时不需要。
_CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的
17
电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现
存储过程和SQL语句。在使用_CommandPtr接口时,你可以利用全局_ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_ConnectionPtr接口创建一个数据连接,然后使用_CommandPtr接口执行存储过程和SQL语句。
_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给_RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。
根据这些,我们将数据库的各种操作封装到CMyDatabase类里。
18
电子信息与控制工程系通信技术专业 自行车租售管理系统设计与实现
5 程序的详细设计
5.1程序设计
该系统采用对话框和属性页的形式作为主界面,支持异地远程数据库的读取。系统运行时,用户首先要连接到远程数据库,连接成功后,状态栏会有相应的提示,之后在整个系统的运行过程中,系统与数据库始终保持这一个连接,并通过这一个连接来进行各种SQL语句操作。整个系统中,主界面CManageSysDlg 类有一个对象m_db,这个就是与数据库保存连接的数据库对象。 5.2程序流程
19