第1章 数据库开发概述 1
1.1 数据库基础知识 1
1.1.1 数据库技术的发展 1
1.1.2 数据库系统的特点 3
1.1.3 数据模型 5
1.1.4 系统结构 7
1.1.5 数据库管理系统(DBMS) 7
1.2 SQL 8
1.2.1 SQL简介 8
1.2.2 DBMS对SQL的处理 9
1.2.3 SQL的处理技术 10
1.2.4 SQL语句 13
1.2.5 建立SQL查询 15
1.3 Visual C++ 6.0与数据库开发 19
1.3.1 使用Visual C++ 6.0开发数据库的优势 19
1.3.2 常用的开发技术 20
本章小结 22
第2章 掌握MFC ODBC开发技术 23
2.1 MFC ODBC概述 23
2.2.1 CDatabase对象的种类 24
2.2 CDatabase类 24
2.2.2 CDatabase类的构建函数 26
2.2.3 数据库属性函数 28
2.2.4 数据库操作函数 30
2.2.5 数据库重载函数 32
2.2.6 CDatabase类的数据成员 33
2.3 CRecordset类 33
2.3.1 CRecordset对象的种类 33
2.3.2 CRecordset类的构建函数 34
2.3.3 记录集属性函数 38
2.3.4 记录集更新函数 42
2.3.5 记录集滚动函数 44
2.3.6 其他记录集操作函数 47
2.3.7 记录集重载函数 54
2.3.8 CRecordset类的数据成员 57
2.4 事务 58
2.5 RFX机制 60
2.5.1 RFX与记录集对象 60
2.5.2 记录字段交换过程 61
2.5.3 RFX函数 63
2.5.4 Visual C++向导所生成的RFX代码 64
2.6 Bulk RFX机制 66
2.7 CFieldExchange类 67
本章小结 69
第3章 MFC ODBC数据库开发编程 70
3.1 MFC ODBC数据库开发概述 70
3.2 管理数据源 71
3.2.1 配置数据源 71
3.2.2 操作数据源 73
3.2.3 推广连接字符串 74
3.3.1 记录集类的结构 75
3.3 常规记录集管理编程 75
3.3.2 打开和关闭记录集 77
3.3.3 滚动记录集 78
3.3.4 定位记录集 79
3.3.5 过滤记录集 80
3.3.6 排序记录集 81
3.3.7 参数化记录集 82
3.3.8 锁定记录集 84
3.4 高级记录集管理编程 84
3.4.1 多表联合查询 84
3.4.2 使用预定义查询 86
3.4.3 动态绑定数据表列 89
3.4.4 实现多行存取 95
3.4.5 管理数据库中的大型数据项 96
3.4.6 得到SUMs以及其他统计结果 97
3.4.7 使用事务 98
3.4.8 联合使用ODBC API和SQL 99
3.5 MFC ODBC数据库应用程序的结构 99
3.5.1 创建支持数据库的应用程序 99
3.5.2 数据库应用程序的文档/视图结构 100
3.5.3 使用CRecordView类 102
3.6.1 创建应用程序框架 105
3.6 学生信息管理系统开发实例剖析 105
3.6.2 AppWizard生成的数据库实现代码 107
3.6.3 定制应用程序界面 114
3.6.4 显示数据库记录信息 115
3.6.5 实现多表动态参数化查询 117
3.6.6 操作数据库记录 122
3.6.7 实现多视图查询 126
本章小结 137
第4章 深入ODBC API 138
4.1 ODBC概述 138
4.2 ODBC的组成结构 140
4.2.2 驱动程序管理器组件 141
4.2.1 用程序组件 141
4.2.3 驱动程序组件 142
4.2.4 数据源组件 144
4.3 ODBC一致性 145
4.3.1 ODBC API一致性 146
4.3.2 ODBC SQL一致性 148
4.4.1 环境句柄(Environment Handle) 149
4.4.2 连接句柄(Connection Handle) 149
4.4 句柄 149
4.4.3 语句句柄(Statement Handle) 150
4.4.4 描述符句柄(Descriptor Handle) 150
4.4.5 句柄状态 151
4.5 缓冲区 151
4.5.1 数据缓冲区 152
4.5.2 数据长度和缓冲区长度 152
4.5.3 字符数据和C字符串 153
4.5.4 延迟缓冲区 154
4.6 光标 154
4.6.1 单向前滚光标 154
4.6.2 可滚动光标 155
4.6.3 块光标 157
4.6.4 ODBC光标库 158
4.7 ODBC数据类型 158
4.7.1 SQL数据类型 158
4.7.2 C数据类型 160
4.7.3 数据类型转换 161
4.8 ODBC诊断 162
4.9 ODBCAPI函数 163
4.9.1 句柄函数 163
4.9.2 环境函数 164
4.9.3 连接函数 166
4.9.4 语句函数 171
4.9.5 光标函数 174
4.9.6 编目函数 176
4.9.7 描述符函数 184
4.9.8 表列函数 188
4.9.9 参数函数 192
4.9.10 结果集函数 195
4.9.11 SQL处理函数 197
4.9.12 诊断函数 199
4.9.13 数据源和驱动程序信息函数 201
4.9.14 事务和批处理函数 205
本章小结 207
第5章 高性能ODBC数据库应用程序开发 208
5.1 ODBC API编程概述 208
5.2 初始化工作环境 209
5.2.1 分配环境句柄 209
5.2.2 设置环境属性 210
5.2.3 分配连接句柄 210
5.3 连接数据源 211
5.2.4 设置连接属性 211
5.3.1 数据源连接概述 212
5.3.2 使用SQLConnect建立连接 213
5.3.3 使用SQLDriverConnect建立连接 215
5.3.4 使用SQLBrowseConnect建立连接 219
5.4 操作数据源 222
5.4.1 选择SQL语法 222
5.4.2 构造SQL语句 223
5.4.3 分配语句句柄 225
5.4.4 设置语句属性 226
5.4.5 执行语句 226
5.4.6 参数化SQL语句 230
5.4.7 释放语句句柄 243
5.5 检索结果集 244
5.5.1 检索结果集元数据 244
5.5.2 绑定结果集列 245
5.5.3 检索单行记录 248
5.5.4 检索大型数据 249
5.5.5 检索多行记录 250
5.5.6 使用可滚动光标检索结果集 255
5.6.1 定位更新和删除 257
5.6 更新结果集 257
5.5.7 多结果集 257
5.6.2 使用SQLSetPos更新数据 260
5.6.3 使用SQLBulkOperations函数更新数据 262
5.6.4 使用SQLSetPos与SQLBulkOperations函数处理大型数据 263
5.7 事务处理 264
5.8 解除与数据源的连接 264
5.9 ODBC API与MFC ODBC联合编程实例剖析 265
5.9.1 创建应用程序框架 265
5.9.2 定制应用程序界面 266
5.9.3 定制API函数的结果集 267
5.9.4 查询并显示数据源信息 271
本章小结 273
第6章 掌握MFC DAO编程技术 274
6.1 MFC DAO概述 274
6.1.1 DAO对象 275
6.1.2 MFC与DAO 275
6.1.3 MFC DAO类不能处理的DAO对象 277
6.1.4 DAO能够操作的数据库 277
6.2 在MFC DAO和MFC ODBC之间作出选择 278
6.3.1 CDaoWorkspace类概述 279
6.3 CDaoWorkspace类 279
6.3.2 CDaoWorkspace的构造函数 280
6.3.3 工作区属性函数 280
6.3.4 工作区操作函数 281
6.3.5 数据库引擎属性函数 288
6.3.6 CDaoWorkspace类的数据成员 290
6.4 CDaoDatabase类 290
6.4.1 CDaoDatabase类概述 290
6.4.2 CDaoDatabase类的构造函数 291
6.4.3 数据库属性函数 291
6.4.4 数据库操作函数 294
6.4.5 CDaoDatabase类的数据成员 301
6.5 CDaoTableDef类 302
6.5.1 CDaoTableDef类概述 302
6.5.2 CDaoTableDef类的构建函数 302
6.5.3 表定义属性函数 304
6.5.4 表定义操作函数 309
6.5.5 CDaoTableDef类的数据成员 312
6.6 CDaoQueryDef类 312
6.6.2 CDaoQueryDef类的构建函数 313
6.6.1 CDaoQueryDef类概述 313
6.6.3 查询定义属性函数 315
6.6.4 查询定义操作函数 318
6.6.5 CDaoQueryDef类的数据成员 321
6.7 CDaoRecordset类 322
6.7.1 记录集对象的种类 322
6.7.2 CDaoRecordset类概述 323
6.7.3 CDaoRecordset类的构建函数 323
6.7.4 记录集属性函数 325
6.7.5 记录集更新函数 332
6.7.6 记录集定位函数 334
6.7.7 记录集杂项操作函数 340
6.7.8 记录集重载函数 346
6.7.9 CDaoRecordset类的数据成员 347
6.8 DFX机制 348
6.8.1 DFX与记录集对象 349
6.8.2 记录字段交换过程 349
6.8.3 DFX函数 352
6.8.4 Visual C++向导所生成的DFX代码 353
6.9 CDaoFieldExchange类 355
6.10 DAO收集 357
本章小结 358
第7章 MFC DAO数据库开发编程 359
7.1 MFC DAO数据库开发概述 359
7.2 使用工作区对象 360
7.2.1 操作隐式MFC DAO对象 360
7.2.2 显式打开默认工作区 361
7.2.3 管理事务 361
7.2.4 隔离事务 363
7.2.5 检索和设置数据库引擎属性 364
7.3 使用数据库对象 364
7.3.1 新建数据库 364
7.3.2 打开数据库 366
7.3.3 关闭数据库 367
7.4 使用记录集对象 368
7.4.1 记录集类的结构 368
7.4.2 创建记录集 370
7.4.3 滚动记录集定位 372
7.4.4 书签定位与绝对定位 373
7.4.5 条件定位 374
7.4.6 使用记录缓存 376
7.4.7 动态绑定 377
7.4.8 添加、删除和编辑记录集 381
7.4.9 排序记录集 382
7.4.10 过滤记录集 383
7.5 使用查询定义对象 384
7.5.1 新建查询定义 384
7.5.2 保存查询定义 387
7.5.3 打开查询定义 387
7.5.4 使用临时查询定义 388
7.5.5 执行查询定义 389
7.5.6 使用直通查询 389
7.5.7 参数化查询定义 390
7.6.1 新建数据库表 391
7.6 使用表定义对象 391
7.6.2 打开表定义 398
7.6.3 表型记录集 399
7.7 动态检索数据库结构 399
7.8 使用外部数据源 401
7.8.1 附加表 401
7.8.2 直接打开外部数据源 403
7.8.3 优化性能 404
7.9 MFC DAO数据库应用程序的结构 405
7.10.1 建立应用程序框架 408
7.10 “家庭助理”实例剖析 408
7.10.2 制作应用程序界面 409
7.10.3 增强的列表控制 416
7.10.4 创建高级工具栏 418
7.10.5 修改记录集类 420
7.10.6 在列表控件中显示数据库数据 424
7.10.7 映射列表控件中的选项到数据库表记录 427
7.10.8 修改数据库记录 428
7.10.9 使用快捷菜单修改记录 429
7.10.10 新建数据库 430
7.10.11 修改数据库结构 433
本章小结 434
第8章 OLE DB基础 435
8.1 COM简介 435
8.2 OLE DB概述 437
8.2.1 OLE DB的结构 438
8.2.2 OLE DB技术的优越性 439
8.3 OLE DB对象 440
8.4 OLE DB模板 443
本章小结 443
9.1 OLE DB客户模板体系结构 444
第9章 开发OLE DB客户应用程序 444
9.1.1 一般数据源支持 445
9.1.2 OLE DB行集和绑定支持 445
9.1.3 OLE DB表和命令支持 446
9.1.4 OLE DB用户记录 446
9.2 OLE DB客户模板类 448
9.2.1 会话类 448
9.2.2 存取器类 455
9.2.3 行集类 464
9.2.4 命令类 488
9.2.5 属性类 492
9.2.6 书签类 495
9.2.7 错误类 496
9.3 选择存取器 498
9.4 检索数据 499
9.5 检索列的长度和状态信息 501
9.6 处理大型数据 502
9.7 使用书签 503
9.8 重载动态存取器 504
9.9 使用多路存取器 505
9.10 接收通告消息 506
9.11 使用过程 507
9.12 使用多个行集 508
9.13 设计直接访问数据源的客户应用程序 509
9.13.1 创建客户程序框架 509
9.13.2 使用ATL Object Wizard 509
9.13.3 查询学生信息 513
9.14 设计通过服务器访问数据源的客户应用程序 515
9.14.1 创建客户程序框架 515
9.14.2 编辑对话框资源 515
9.14.3 定制用户记录 516
9.14.4 添加消息响应函数 516
9.14.5 添加书签支持 517
本章小结 519
第10章 开发OLE DB服务器应用程序 520
10.1 OLE DB服务器模板体系结构 520
10.2 OLE DB服务器模板类 524
10.2.1 会话类 524
10.2.2 行集类 528
10.2.3 命令类 543
10.2.4 数据源类 547
10.2.5 其他类 550
10.4 处理服务器属性 552
10.3 为服务器添加接口 552
10.5 动态绑定列 554
10.6 测试服务器 555
10.7 设计OLE DB服务器 556
10.7.1 创建ATL工程 556
10.7.2 使用ATL Object Wizard添加OLE DB服务器 558
10.7.3 创建用户记录 559
10.7.4 定制Execute函数 560
10.7.5 添加新接口 562
10.7.6 动态确定返回给客户的列 567
本章小结 570