第1章 用VisualC++6.0开发数据库应用程序概述 1
1.1 选择VisualC++开发数据应用程序 1
1.1.1 VisualC++6.0开发数据库技术的特点 1
目录 1
1.1.2 VisualC++6.0开发数据库的相关技术 2
1.2 数据库的基本概念 3
1.2.1 数据库的发展历史 3
1.2.2 数据库系统的特点 4
1.2.3 数据库系统结构 5
1.3 关系型数据库 6
1.3.1 数据模型 6
1.2.4 数据库管理系统 6
1.3.2 数据库对象 7
1.4 当前流行的几种数据库 10
1.5 如何进行数据库应用程序的开发 12
1.5.1 数据库应用程序的基本开发步骤 12
1.5.2 选择数据库管理系统的原则 13
1.6 本章小结 15
第2章 设计、创建和维护Access数据库 16
2.1 Access简介 16
2.2 创建Access2002数据库 17
2.3 创建数据表 17
2.3.1 使用表向导创建表 17
2.4 设计和修改数据表的结构 19
2.4.1 字段属性 19
2.3.2 使用“设计视图”创建表 19
2.4.2 数据表的修改 20
2.4.3 设置索引 21
2.5 设计表之间的关系 21
2.5.1 关系介绍 21
2.5.2 建立表之间的关系 23
2.6 编辑管理数据记录 24
2.6.1 输入新数据 24
2.6.2 修改已有数据 24
2.6.3 删除选定记录 24
2.6.4 查询浏览记录 25
2.7 本章小结 25
3.1.1 初识数据源 26
3.1.2 ODBC的标准 26
第3章 设置ODBC数据源 26
3.1 ODBC数据源介绍 26
3.1.3 ODBC的体系结构 27
3.1.4 ODBC驱动程序 28
3.2 使用管理器设置ODBC数据源 29
3.2.1 管理器介绍 29
3.2.2 通过管理器设置Access数据源 30
3.2.3 通过管理器设置SQLServer数据源 30
3.3 动态加载数据源 32
3.3.1 通过修改注册表加载数据源 32
3.3.2 通过ODBCAPI加载数据源 34
3.4.1 文件数据源的简介及应用 35
3.4 特殊数据源的连接方式 35
3.4.2 远程数据库的连接 37
3.5 本章小结 38
第4章 标准SQL语句 39
4.1 SQL语言概述 39
4.1.1 SQL语言的分类 39
4.1.2 SQL语言的特点 40
4.2 最常用的SQL查询语句 40
4.2.1 SELECT子句选择字段 41
4.2.2 AS子句设置字段别名 42
4.2.3 FROM子句确定记录源 42
4.2.4 WHERE子句定义查询条件 42
4.2.5 ORDERBY子句对记录排序 43
4.2.6 GROUPBY子句进行分组查询 44
4.2.7 BETWEEN和IN子句设定匹配范围 44
4.2.8 LIKE子句进行通配查询 45
4.2.9 HAVING子句设定统计条件 46
4.2.10 SQL函数进行统计查询 47
4.3 功能增强的SQL语句 47
4.3.1 插入数据——INSERT子句 47
4.3.2 删除数据——DELETE子句 48
4.3.3 更新数据——UPDATE子句 48
4.4 关系数据库的联合查询技术 49
4.4.1 联合查询 49
4.4.2 连接查询 50
4.5 本章小结 52
第5章 使用ODBCAPI访问数据库 53
5.1 ODBCAPI基础 53
5.1.1 ODBCAPI体系结构 53
5.1.2 ODBCAPI句柄 54
5.1.3 ODBC数据类型 56
5.1.4 ODBC诊断 57
5.2 使用ODBCAPI编程建立应用程序 59
5.2.1 ODBCAPI编程模型概述 59
5.2.2 连接数据库 61
5.2.3 准备并执行SQL语句 66
5.2.4 获取记录集 69
5.2.5 记录的添加、删除和更新 71
5.2.6 错误处理 74
5.2.7 事务处理 74
5.2.8 断开数据源连接并释放环境句柄 76
5.3 本章小结 77
第6章 使用MFCODBC访问数据库 78
6.1 MFCODBC技术 78
6.1.1 概述 78
6.1.2 CDatabase类操作数据源 78
6.1.3 CRecordset类操作记录集 79
6.1.4 CFieldExchange类处理数据交换 80
6.1.5 CRecordView类显示记录 80
6.2.1 MFCODBC编程模型概述 81
6.1.6 CDBException类处理异常 81
6.2 使用MFCODBC编程建立应用程序 81
6.2.2 通过AppWizard建立数据库应用程序 82
6.2.3 使用CDatabase类方法打开数据源 83
6.2.4 使用CRecordset类打开记录集 84
6.2.5 绑定记录集 86
6.2.6 参数化记录集和查询 87
6.2.7 遍历记录集合 88
6.2.8 书签定位和绝对定位 89
6.2.9 获取记录集的数据 91
6.2.10 添加记录 92
6.2.12 修改记录 94
6.2.11 删除记录 94
6.2.13 直接执行SQL语句(增加、删除表等) 95
6.2.14 事务处理 96
6.2.15 使用多记录集 98
6.3 本章小结 99
第7章 使用DAO操作数据库 100
7.1 DAO技术 100
7.1.1 概述 100
7.1.2 与ODBC的比较 100
7.1.3 DAO的结构 101
7.2 使用MFCDAO编程建立应用程序 105
7.2.1 MFCDAO编程模型概述 105
7.2.2 通过AppWizard建立数据库应用程序 105
7.2.3 使用CDaoDatabase类打开数据库 106
7.2.4 使用CDaoRecordset类打开记录集 107
7.2.5 遍历记录集合 109
7.2.6 获取记录集的数据 110
7.2.7 添加记录 111
7.2.8 删除记录 112
7.2.9 修改记录 113
7.2.10 直接执行SQL语句(增加、删除记录等) 113
7.2.11 事务处理 115
7.2.12 关闭数据库 116
7.3 使用CDaoTableDef、CDaoFieldExchange、CDaoQueryDef 117
7.3.1 使用CDaoTableDef进行数据库表操作 117
7.3.2 使用CDaoFieldExchange进行数据库表字段的操作 121
7.3.3 使用CDaoQueryDef进行数据库查询操作 122
7.4 本章小结 125
第8章 使用OLEDB操作数据库 126
8.1 概述 126
8.2 COM简介 127
8.2.1 COM中的基本概念 127
8.2.2 对象服务器的类型和特点 129
8.2.3 接口的特点和使用 130
8.2.4 对象使用者使用对象和接口的方法 133
8.3 OLEDB的原理 137
8.3.1 OLEDB应用程序的结构 137
8.3.2 OLEDB对象的结构 137
8.4.1 模板的定义和使用 142
8.4 OLEDB客户模板 142
8.4.2 客户模板的结构 143
8.5 使用OLEDB客户模板开发用户程序 151
8.5.1 OLEDB客户模板的编程模型 151
8.5.2 通过AppWizard建立数据库应用程序 152
8.5.3 打开数据源对象和会话对象 158
8.5.4 打开行集对象 159
8.5.5 遍历记录集 161
8.5.6 访问记录集中的数据 163
8.5.7 添加记录 163
8.5.8 修改记录 165
8.5.9 删除记录 165
8.5.10直接执行操作数据库的命令 166
8.6 本章小结 168
第9章 使用ADO操作数据库 169
9.1 ADO技术介绍 169
9.1.1 ADO简介 169
9.1.2 ADO技术的特点 170
9.1.3 ADO结构 170
9.1.4开发ADO应用程序的方法 171
9.2 ADO对象及集合 171
9.2.1 连接对象 171
9.2.2 命令对象 172
9.2.3 记录集对象 173
9.2.4 域对象 175
9.2.5 参数对象 176
9.2.6 错误对象 177
9.2.7 属性对象 178
9.2.8 集合 179
9.3 使用ADO对象开发数据库应用程序 180
9.3.1 ADO对象编程模型 180
9.3.2 ADO中的智能指针 181
9.3.3 引入ADO动态链接库 182
9.3.4 初始化OLE/COM库环境 183
9.3.5 创建ADO与数据源的连接 183
9.3.6 获得记录集 185
9.3.7 遍历记录集 188
9.3.8 访问记录集中的数据 190
9.3.9 添加记录 197
9.3.10修改记录 198
9.3.1 1删除记录 200
9.3.1 2查询记录 201
9.3.1 3事务处理 204
9.3.1 4关闭记录集和连接 204
9.4 本章小结 205
第10章 数据库视图中常用的控件 206
10.1 使用List控件 206
10.1.1 在VisualC++项目中引入List控件 206
10.1.2 List控件的主要属性、事件和方法 207
10.1.3 List控件与数据库结合的典型示例 210
10.2.1 在VisualC++项目中引入Tree控件 213
10.2 使用Tree控件 213
10.2.2 Tree控件的主要属性、事件和方法 214
10.2.3 Tree控件与数据库结合的典型示例 217
10.3 使用DataGrid控件 224
10.3.1 在VisualC++项目中引入DataGrid控件 224
10.3.2 DataGrid控件的主要属性、事件和方法 224
10.3.3 DataGrid控件与数据库结合的典型示例 227
10.4 本章小结 228
第11章 数据库的特殊处理 230
11.1 存取数据库中特殊数据 230
11.1.1 图片的存取 230
11.1.2 超长数据库字段的操作方法 235
11.2 其他数据库的访问 243
11.2.1 访问Excel数据 243
11.2.2 访问FoxPro数据 247
11.3 数据有效性监测 247
11.3.1 数据类型监测 248
11.3.2 数据范围监测 248
11.4 操作加密数据库 250
11.4.1 为数据库设置密码 251
11.4.2 访问加密数据库 252
11.5 本章小结 253
第12章 发布数据库系统 255
12.1 数据库系统的编译 255
12.2.1 安装和使用InstallShield 256
12.2 可用的程序打包工具 256
12.2.2 安装和使用Wise 257
12.3 使用InstallShield5.5 进行程序发布 257
12.3.1 InstallShield5.5 界面介绍 257
12.3.2 新建一个安装包 258
12.3.3 基本的安装包设置 260
12.3.4 特殊的安装包设置 263
12.4 本章小结 265
13.2 系统设计 266
13.2.1 需求分析 266
13.2.2 模块设计 266
13.1 教学目标与案例预览 266
第13章 用户登录功能模块 266
13.3 设计与创建数据库 267
13.3.1 设计数据库 267
13.3.2 创建数据库 268
13.3.3 设置数据源 269
13.4 制作用户登录模块 270
13.4.1 设置数据源 270
13.4.2 编辑对话框资源 271
13.4.3 变量关联 272
13.4.4 连接数据库 273
13.4.5 增加“确定”按钮消息响应函数 273
13.4.6 添加“密码验证”代码 274
13.4.7 编译 276
13.5 配置与运行 277
13.4.8 制作“钥匙”图标 277
13.6 本章小结 278
第14章 用户信息管理模块 279
14.1 教学目标与案例预览 279
14.2 系统设计 280
14.2.1 需求分析 280
14.2.2 模块设计 280
14.3 设计与创建数据库 282
14.3.1 设计数据库 282
14.3.2 创建数据库 283
14.3.3 设置数据源 283
14.4 创建VC工程 283
14.5.1 编辑菜单资源 284
14.5 制作菜单 284
14.5.2 为菜单资源增加消息响应函数 285
14.6 实现“查询和列表”功能 286
14.6.1 使用ListView 286
14.6.2 制作“查询”对话框 288
14.6.3 编写“查询和列表”的代码 289
14.7 实现“增加用户信息”功能 293
14.7.1 制作“增加用户信息”对话框 293
14.7.2 编写“增加用户信息”菜单函数 294
14.7.3 编写输入校验 296
14.8 实现“修改用户信息”功能 297
14.8.1 在CUserDlg中显示当前用户信息 297
14.8.2 把信息修改更新到数据库中 298
14.8.3 修改ListCtrl中的当前记录 299
14.8.4 响应“双击”来修改用户信息 300
14.8.5 为窗口改名 300
14.9 实现“删除用户信息”功能 301
14.9.1 在CDemo02View中增加删除处理 301
14.9.2 增加删除确认处理 303
14.10 工具条的制作 303
14.11 配置与运行 304
14.1 2本章小结 304
第15章 网页浏览和网址限制功能模块 306
15.1 教学目标与案例预览 306
15.2.2 模块设计 307
15.2 系统设计 307
15.2.1 需求分析 307
15.3 设计与创建数据库 310
15.3.1 设计数据库 310
15.3.2 创建数据库 310
15.4 制作浏览器 310
15.4.1 创建VC工程 310
15.4.2 实现“网页浏览”功能 311
15.5 访问限制和记录 313
15.5.1 进行网址限制 313
15.5.2 记录非法访问 315
15.5.3 查看非法访问记录 316
15.6.1 调用JPEG类库截取屏幕 319
15.6 屏幕截取、保存和查看 319
15.6.2 保存和显示截屏图片 321
15.7 运行参数设置 323
15.7.1 网址库的设置 323
15.7.2 设置检测属性 326
15.7.3 利用注册表来记忆设置 329
15.8 配置与运行 333
15.9 本章小结 333
第16章 住户管理系统 335
16.1 教学目标与案例预览 335
16.2.1 需求分析 337
16.2.2 模块设计 337
16.2 系统分析与设计 337
16.3 设计与创建数据库 338
16.4 创建VisualC++工程 339
16.5 加入ATL产生的模板类 340
16.6 实现界面框架 343
16.6.1 编辑菜单 343
16.6.2 编辑工具条 343
16.6.3 实现主框架的客户区视图 344
16.7 打开和关闭数据库 347
16.8 实现左边的树视图 348
16.8.1 编辑图标 348
16.8.2 显示树视图 349
16.9 罗列住户 353
16.10 查看住户详细信息 357
16.11 增加住户 360
16.11.1 编辑对话框资源 360
16.11.2 实现功能 361
16.12 住户查询 364
16.12.1 编辑对话框资源 364
16.12.2 实现功能 365
16.13 删除住户 368
16.14 配置与运行 371
16.15 本章小结 371
第17章 物流单据管理模块 372
17.1 教学目标与案例预览 372
17.2.2 模块设计 373
17.2.1 需求分析 373
17.2 系统分析与设计 373
17.3 分析与创建数据库 374
17.4 创建VisualC++工程 375
17.5 引入控件 376
17.5.1 表格(Grid)控件 376
17.5.2 位图按钮 376
17.6 使用ADO连接数据库 377
17.7 实现单据对话框功能 378
17.7.1 制作对话框 379
17.7.2 定义成员变量 380
17.7.3 在BOOLCBillDlg::OnInitDialog()函数中初始化对话框 381
17.7.4 处理表格控件CGridCtrl的GVN_ENDLABELEDIT消息 385
17.7.5 保存单据功能 386
17.8.1 编辑对话框资源 390
17.8 实现主对话框功能 390
17.8.2 初始化主对话框 391
17.8.3 开销售单据 394
17.8.4 开进货单据 395
17.8.5 查看单据 395
17.8.6 退出程序 396
17.9 配置与运行 396
17.10 本章小结 396
第18章 研究生信息管理系统 397
18.1 教学目标与案例预览 397
18.2 系统分析与设计 398
18.3.1 数据库概念设计 400
18.3 分析与创建数据库 400
18.3.2 数据库逻辑设计阶段及表的设计 401
18.3.3 生成表和建立表间关系的过程 403
18.4 创建工程 404
18.5 创建学生信息管理模块 404
18.5.1 模块的功能 404
18.5.2 界面的设计 405
18.5.3 模块的工作流程/方式 406
18.5.4 编写程序代码 407
18.6 创建导师信息管理模块 421
18.6.1 模块的功能 421
18.6.2 界面的设计 422
18.6.3 模块的工作流程/方式 423
18.6.4 编写程序代码 424
18.7 创建课程信息管理模块 434
18.7.1 模块的功能 434
18.7.2 界面的设计 434
18.7.3 模块的工作流程/方式 436
18.7.4 编写程序代码 436
18.8 创建选课信息管理模块 448
18.8.1 模块的功能 448
18.8.2 界面的设计 448
18.8.3 窗体的工作流程/方式 449
18.8.4 编写程序代码 450
18.9.2 模块界面的设计 462
18.9.1 模块的功能 462
18.9 创建成绩查询模块 462
18.9.3 模块的工作流程/方式 464
18.9.4 编写程序代码 466
18.10 创建主模块 470
18.10.1 模块的功能 470
18.10.2 界面的设计 470
18.10.3 模块的工作流程/方式 472
18.10.4 编写程序代码 472
18.11 配置与运行 475
18.12 本章小结 475
附录A 常用的调试手段 476
附录B 通过网络获取更多的帮助 480