第1章 Visual C++数据库开发前奏 1
1.1 Visual C++ 6.0开发工具简介 1
1.1.1 C、C++与Visual C++的联系与区别 1
1.1.2 Visual C++的发展历史 1
1.1.3 MFC简介 2
1.2 学好Visual C++ 6.0的建议 6
1.2.1 怎样开始学习Visual C++ 6.0 6
1.2.2 从网上获取Visual C++开发资源 7
1.2.3 养成良好的编程习惯 8
1.2.4 多学两招——Visual C++程序开发技巧两则 9
1.3 常见数据库简介 10
1.3.1 Oracle 10
1.3.2 SQL Server 11
1.3.3 Access 11
1.3.4 DB2 11
1.3.5 Sybase 11
1.3.6 MySQL 12
1.3.7 PostgreSql 12
1.4 结构化查询语言(SQL)简介 12
1.4.1 查询操作 13
1.4.2 插入操作 15
1.4.3 更新操作 15
1.4.4 删除操作 16
1.5 数据库开发常用技巧 16
1.5.1 数据库的正规化设计 16
1.5.2 指点迷津——数据库的值查询问题 19
1.5.3 多学两招——数据库事务 20
1.6 本章小结 20
第2章 数据库访问技术及模块封装 21
2.1 ODBC技术 21
2.1.1 ODBC简介 21
2.1.2 注册ODBC数据源 22
2.1.3 指点迷津——数据源配置在系统中的保存方式 26
2.1.4 生成程序框架时导入数据源 26
2.1.5 MFC数据库类 30
2.1.6 多学两招——C++中的异常捕获及处理 34
2.2 DAO技术 35
2.2.1 DAO简介 35
2.2.2 DAO操作类 36
2.3 OLE DB技术 41
2.3.1 OLE DB简介 41
2.3.2 OLE DB操作类 41
2.4 ADO技术 48
2.4.1 ADO简介 48
2.4.2 ADO对象及集合 49
2.4.3 使用ADO设计数据库访问模块 56
2.4.4 脚下留心——防止编译时产生与ADO相关的错误 60
2.5 MySQL数据库的访问技术 61
2.5.1 安装MySQL 61
2.5.2 VC开发环境配置 63
2.5.3 访问MySQL数据库 65
2.6 本章小结 69
第3章 日志记录模块 70
3.1 日志表的设计与建立 70
3.2 日志信息的记录与查询 71
3.2.1 在Visual C++ 6.0中向数据库提交SQL语句 71
3.2.2 多学两招——通过在数据库中建立存储过程及用户定义函数记录与查询日志 72
3.3 使用类封装日志信息的读写/操作 74
3.3.1 类的设计及编码 74
3.3.2 多学两招——使用线程避免数据库操作时的阻塞 81
3.4 本章小结 83
第4章 通讯录管理系统 84
4.1 系统概述与预览 84
4.1.1 系统功能与应用背景 84
4.1.2 系统预览 84
4.2 系统分析与设计 85
4.2.1 需求分析 85
4.2.2 模块设计 86
4.3 设计与创建数据库 86
4.3.1 数据表设计 86
4.3.2 多学两招——为数据表设计参照完整性规则 88
4.4 创建应用程序框架及主窗口控件设计 90
4.5 创建表记录集类 91
4.5.1 建立ODBC数据源 91
4.5.2 通过向导扩展记录集类 92
4.6 实现主窗口信息的显示及联系人信息管理 93
4.6.1 主窗口信息显示 93
4.6.2 查询联系人信息 102
4.6.3 追加新的联系人信息 104
4.6.4 修改联系人信息 107
4.6.5 删除联系人信息 108
4.7 联系人组的追加与删除 109
4.7.1 追加联系人组 109
4.7.2 删除联系人组 111
4.8 本章小结 113
第5章 短信防伪系统 114
5.1 系统概述与预览 114
5.1.1 系统功能与应用背景 114
5.1.2 系统预览 114
5.2 系统分析与设计 116
5.2.1 需求分析 116
5.2.2 模块设计 118
5.3 设计与创建数据库 120
5.3.1 数据表设计 120
5.3.2 数据表关系设计 121
5.4 创建应用程序框架 121
5.5 数据库访问模块设计 122
5.5.1 宏及结构体定义 122
5.5.2 构造函数 123
5.5.3 数据库写操作函数 124
5.5.4 数据库读操作函数 128
5.5.5 指点迷津——使用标准模板库(STL) 136
5.5.6 多学两招——函数的重载 138
5.6 产品管理 142
5.6.1 添加产品 142
5.6.2 产品列表 145
5.7 生成防伪码 151
5.7.1 功能流程 151
5.7.2 代码实现 152
5.8 信息统计 158
5.8.1 实时查询信息 158
5.8.2 号码统计信息 160
5.9 防伪号查询模块设计 161
5.9.1 查询类设计 161
5.9.2 短信接口选择与设计 163
5.10 系统功能扩充 164
5.11 安装程序的制作 164
5.11.1 制作安装包前的准备工作 164
5.11.2 InstallShield简介 165
5.12 本章小结 169
第6章 宾馆程控电话计费系统 170
6.1 系统概述与预览 170
6.1.1 系统功能与应用背景 170
6.1.2 系统预览 170
6.2 系统分析与设计 173
6.2.1 需求分析 173
6.2.2 模块设计 175
6.3 设计与创建数据库 175
6.3.1 数据表设计 175
6.3.2 数据表关系设计 177
6.3.3 多学两招——数据库访问性能优化 178
6.4 创建应用程序框架 180
6.4.1 应用程序主窗体设计 180
6.4.2 多学两招——为对话框添加菜单及定时器 183
6.5 数据库操作接口封装 186
6.5.1 在项目中加入数据库接口封装类ADOConn 186
6.5.2 数据库接口封装类ADOConn的代码实现 187
6.6 部门管理 190
6.6.1 部门管理主窗口设计 190
6.6.2 添加部门信息 193
6.6.3 修改部门信息 196
6.6.4 删除部门信息 197
6.7 电话信息设置 198
6.8 分配分机 201
6.9 费率设置 206
6.9.1 费率设置主窗口设计 206
6.9.2 增加费率信息 207
6.9.3 修改费率信息 210
6.9.4 删除费率信息 212
6.10 数据查询 213
6.11 本章小结 223
第7章 KTV点歌系统 224
7.1 系统概述与预览 224
7.1.1 系统功能与应用背景 224
7.1.2 系统预览 224
7.2 系统分析与设计 227
7.2.1 需求分析 227
7.2.2 模块设计 228
7.3 设计与创建数据库 229
7.3.1 多学两招——使用E-R图设计数据库 229
7.3.2 数据表关系设计 231
7.4 创建服务程序框架 231
7.5 数据库访问模块设计 234
7.5.1 数据库连接参数设定窗口 234
7.5.2 基本操作类实现 236
7.5.3 指点迷津——通过T-SQL执行数据库的备份及恢复操作 248
7.5.4 多学两招——SQL Server数据库备份及备份策略 254
7.5.5 脚下留心——防止将数据库备份还原于其他数据库服务器时产生错误 258
7.6 用户管理 262
7.7 歌曲管理 266
7.8 与客户程序通信模块 273
7.9 客户程序简述 281
7.9.1 数据库连接参数设定窗口 281
7.9.2 数据库相关操作 284
7.9.3 通信模块简介 288
7.9.4 客户程序窗口及播放曲目简介 291
7.10 本章小结 299
第8章 资产管理系统 300
8.1 系统概述与预览 300
8.1.1 系统功能与应用背景 300
8.1.2 系统预览 300
8.2 系统分析与设计 304
8.2.1 需求分析 304
8.2.2 模块设计 304
8.3 设计与创建数据库 305
8.3.1 数据表设计 305
8.3.2 数据表关系设计 307
8.4 创建程序框架 308
8.5 数据库访问模块 312
8.5.1 多学两招——在数据库连接类ADOConn中使用UDL文件 312
8.5.2 部门类CDepartments 316
8.5.3 资产类型类CType 319
8.5.4 资产类CAssets 323
8.5.5 用户类CUsers 329
8.6 登录系统模块 332
8.7 系统设置模块 334
8.7.1 多学两招——在部门信息设置对话框中使用数据库控件 335
8.7.2 类别设置和用户设置 340
8.7.3 指点迷津——修改密码对话框的设计策略 341
8.8 资产管理模块 343
8.8.1 资产信息编辑 343
8.8.2 资产变更与资产维修 356
8.8.3 多学两招——使用自定义函数及视图计算资产折旧 356
8.9 资产统计模块 359
8.9.1 多学两招——将部门资产统计数据导入到Excel文档 359
8.9.2 分类资产统计 362
8.10 本章小结 362
第9章 学校考试信息管理系统 363
9.1 系统概述与预览 363
9.1.1 系统功能与应用背景 363
9.1.2 系统预览 363
9.2 系统分析与设计 368
9.2.1 需求分析 368
9.2.2 模块设计 370
9.3 设计与创建数据库 370
9.3.1 数据表设计 370
9.3.2 数据表关系设计 375
9.4 创建程序框架 375
9.5 数据库访问模块设计 377
9.5.1 数据库连接类CADOConnection 377
9.5.2 数据集操作类CADODataset 382
9.5.3 指点迷津——使用宏_DEBUG控制调试代码的编译 402
9.5.4 数据集操作封装类CADOStorage 404
9.5.5 系统用户类CUser 405
9.5.6 基本表信息类CBaseTbl 407
9.5.7 多学两招——在Access中建立视图 414
9.6 应用类CStudentScoreApp介绍 415
9.7 登录模块设计 418
9.8 基础数据管理模块设计 421
9.8.1 文档类CStudentScoreDoc 421
9.8.2 视图类CStudentScoreView 421
9.8.3 多学两招——在对话框CBMDialog中动态添加控件 429
9.9 考试信息模块设计 438
9.9.1 考试类CExam 438
9.9.2 考试班级类CExamClass 442
9.9.3 文档类CExamDoc 445
9.9.4 视图类CExamView 445
9.9.5 其他类及对话框 452
9.10 本章小结 453