第一章 引言 1
1.1 发展与变化 1
目录 1
译者序 1
致谢 1
作者简介 1
前言 1
1.2 概述 2
1.3 所需硬件和软件 3
2.1 术语和概念 4
第二章 Windows软件开发:概念与问题 4
2.1.1 Windows特性与数据库应用程序 5
2.1.4 加保护的地址与安全多任务 6
2.1.3 多任务 6
2.1.2 进程、任务和线索 6
2.1.6 调度 7
2.1.5 线索:NetWare和Win32 7
2.1.7 Windows程序设计 8
2.1.9 动态链接库 9
2.1.8 静态和动态链接 9
2.1.11 资源和帮助文件 10
2.1.10 INI(初始化)文件 10
2.1.13 自定义控制项 11
2.1.12 对话框 11
2.2.1 基准 12
2.2 Windows开发人员的笔记本 12
2.1.14 符号表示法 12
2.2.4 伪码 13
2.2.3 公共开发步骤 13
2.2.2 版本控制 13
2.2.6 直观程序设计 14
2.2.5 调试 14
2.2.7 形式化软件开发方法 15
2.3 GUI设计思想与数据库应用程序 16
2.2.8 编写Windows程序 16
3.1 建立数据库应用程序 18
第三章 数据库应用程序:概念与问题 18
3.2.2 ISAM 19
3.2.1 DBMS的演变 19
3.2 数据库体系结构 19
3.2.4 SQL与关系数据库 20
3.2.3 网状和层次数据库 20
3.3 术语和概念 24
3.2.5 桌面、文件服务器和客户-服务器 24
3.3.1 SQL概念 31
3.4.1 网状数据库设计 32
3.4 数据库设计 32
3.4.2 关系数据库设计 33
3.4.3 查询优化 36
3.5 示例数据库和应用程序 39
3.4.4 问题 39
3.5.1 Info Enterprises(以下简称IE) 40
3.5.2 示例应用程序 41
3.6.1 开发数据库前端和客户应用程序的工具 45
3.6 数据库开发人员道路图 45
4.2 网关和路由器 47
4.1 术语和概念 47
第四章 多数据库编程方法 47
4.4 API和CLI 48
4.3 嵌入式SQL 48
4.4.1 标准数据库API:历史的回顾和展望 49
4.4.2 开放数据库连接性(ODBC) 50
4.4.3 INTERSOLV/Q+E数据库程序库 51
4.4.6 ODBC驱动程序 53
4.4.5 Oracle Glue 53
4.4.4 EDA/CLI 53
4.6 使用对象访问数据 54
4.5 部件和自定义控制 54
4.6.2 可互操作对象 55
4.6.1 数据访问对象 55
4.8 影响互操作性问题 56
4.7 晚约束 56
4.10 制定数据库开发策略 57
4.9 分布式对象和远程数据访问 57
5.1 SQL Sever for Windoes NT 58
第五章 服务器和数据库引擎 58
5.1.1 SQL工具 60
5.1.2 Transact-SQL 63
5.1.3 存储过程、触发器和规则 64
5.1.4 为ODBC作准备 65
5.1.5 INI文件 66
5.1.6 建立数据库与表 69
5.2 Watcom SQL 75
5.2.2 管理Watcom SQL 77
5.2.1 加锁和隔离级别 77
5.2.3 ODBC设置 81
5.2.4 编程说明 82
5.3 Quadbase-SQL 88
5.3.1 VBQUERY 89
5.3.2 Quadbase-SQLXB/Server 90
5.3.3 SQL脚本 91
5.4 Microrim R:BASE和R:BASE SQLEngine 94
5.3.4 Quadbase SQL命令详解 94
5.4.1 R:BASE函数 95
5.5 Raima Database Server 97
5.5.2 数据库浏览 98
5.5.1 数据库管理 98
5.5.3 RDS SQL 102
5.5.4 ODBC和Raima SQL函数 103
5.5.5 优化 104
5.6 Gupta SQL.Base 105
5.5.6 扩展模块编程 105
5.6.2 配置文件 106
5.6.1 事务日志和历史文件 106
5.6.3 SQLBase管理和SQLTalk 108
5.6.4 数据组织 110
5.6.6 关于SQLBase SQL的注释 112
5.6.5 网络、SQL网关和SQL路由器 112
5.6.7 优化、查询计划和索引 113
5.6.9 C编程API 114
5.6.8 存储过程、触发器和事件 114
5.6.10 示例数据库 115
5.7.1 EDA/SQL编程 122
5.7 Information Builder的EDA/SQL 122
5.8.1 可视数据管理器 124
5.8 Coromandel Integra VDB 124
5.8.2 可视查询建立器 126
5.8.3 触发器定义 127
5.8.4 自定义控制项 128
5.9 PageAhead的Simba和ODBC桌面数据库 135
5.9.1 关于桌面驱动程序注释 136
5.10 结论 139
第六章 使用ODBC 140
6.1 体系结构 141
6.1.1 部件 142
6.2 函数与功能 144
6.2.2 与Windows API的关系 145
6.2.1 符合性级别 145
6.2.3 驱动程序管理器 149
6.2.4 数据类型 150
6.3.1 设置 151
6.3 安装 151
6.3.3 用于ODBC的文件 152
6.3.2 ODBC SDK 152
6.4.1 跟踪 154
6.4 ODBC Administrator 154
6.4.2 配置数据源 155
6.5 ODBC SQL 161
6.5.1 SQL扩展 162
6.5.2 限定符、系主和过程 167
6.6.2 控制行为的选项 168
6.6.1 句柄 168
6.6 ODBC编程 168
6.6.3 连接 170
6.6.4 元数据、类目信息 172
6.6.5 语句 173
6.6.6 光标操作 174
6.6.7 结果处理 175
6.6.9 典型处理顺序 178
6.6.8 终止 178
6.6.10 引用完整性 179
6.6.12 事务处理与并发 180
6.6.11 异步处理 180
6.6.13 光标库 182
6.7.1 一个基本概念 184
6.7 可互操作的ODBC应用程序 184
6.6.14 翻译库 184
6.7.2 影响互操作性的问题 185
6.7.4 询问可用函数 189
6.7.3 询问可用功能 189
6.7.6 询问可用数据类型 191
6.7.5 建立数据库和表 191
6.8.2 调试与测试 192
6.8.1 使用C++时的链接程序错误 192
6.8 开发者指导原则 192
6.8.3 关于应用程序开发与优化的提示 194
6.8.5 作为工具的ODBC 195
6.8.4 选用ODBC还是选用Access Engine 195
6.10.1 ODBC测试程序工具包 196
6.10 补充信息 196
6.9 为什么要用ODBC? 196
7.1 安装与功能 198
第七章 使用INTERSOLV QELIB 198
7.1.2 QELIB数据类型 199
7.1.1 共同访问同一个数据源 199
7.1.3 所需的ODBC函数 201
7.1.6 联结 202
7.1.5 格式字符串 202
7.1.4 日期 202
7.2.1 连接和语句 203
7.2 函数 203
7.2.2 参数查询 204
7.2.3 事务 205
7.2.5 取数和高速缓存结果集 206
7.2.4 检索数据 206
7.2.7 元数据和类目函数 208
7.2.6 列值检索 208
7.2.8 列函数 209
7.2.10 修改记录 210
7.2.9 处理备忘录和BLOB数据 210
7.2.11 版本信息和初始化 211
7.2.13 查询工具 212
7.2.12 出错处理和调试 212
7.2.14 SQL语法分析 214
7.2.16 日期-时间函数 215
7.2.15 ODBC句柄转换 215
7.2.18 语言问题 216
7.2.17 数据转换 216
7.3 QELIB的可移植的SQL函数 217
7.2.20 QELIB与ODBC 217
7.2.19 编程说明 217
7.3.1 示例程序 218
7.3.2 典型查询 219
7.3.3 列描述信息 220
8.1 Gupta Quest 226
第八章 数据访问和数据表达工具 226
8.1.2 查询 228
8.1.1 QuestWindow 228
8.1.4 非合计函数 229
8.1.3 合计函数 229
8.2.2 访问数据 238
8.2.1 设置 238
8.2 Microsoft Excel 238
8.2.3 ODBC扩展 239
8.2.4 执行查询 240
8.2.5 使用Microsoft Query 241
8.2.6 动态数据交换(DDE) 243
8.3 Microsoft Word for Windows 244
8.3.3 在Word中执行查询 245
8.3.2 访问数据库 245
8.3.1 设置 245
8.3.4 使用附着的ODBC表和Access 246
8.3.5 Word Developer’s Kit和WordBasic 248
8.3.6 使用ODBC扩展 249
8.3.7 示例报告宏 250
8.3.8 邮件合并 251
8.4 InfoPublisher 252
8.4.1 表 253
8.5 Crystal Reports for Windows 254
8.4.3 InfoPublisher和数据库 254
8.4.2 查询 254
8.5.1 报告语言函数 255
8.5.2 专业版的Crystal Reports 256
8.5.4 报告布局模式 257
8.5.3 索引 257
8.5.5 打印引擎编程 258
8.5.6 Crystal Reports的VBX属性 262
8.5.7 示例报告 265
8.6 INTERSOLV Q+E 268
8.6.3 与其它应用程序链接 269
8.6.2 窗体设计器 269
8.6.1 动态查询 269
8.7.1 Lotus DataLens 271
8.7 Lotus 1-2-3软件包 271
8.7.2 关于DataLens驱动程序的注释 273
9.1 Asymetrix InfoModeler 275
第九章 规则、事实和对象 275
9.1.3 数据库、版本和对象的重复使用 276
9.1.2 FORML 276
9.1.1 视图和数据库的模型化 276
9.1.4 谓语 277
9.1.6 约束 278
9.1.5 事实编译器、作图器和表浏览器 278
9.1.9 示例群 279
9.1.8 坐标 279
9.1.7 强制性角色 279
9.1.10 小结 280
9.1.13 示例模型 282
9.1.12 关于驱动程序的说明 282
9.1.11 Verbalizer和Fact Assistant 282
9.1.14 InfoEnterprises的表 283
9.2.1 基于规则的应用程序 284
9.2 采用规则和数据库 284
9.3.1 动作和RuleTalk菜单 285
9.3 Information Builder的LEVEL5 OBJECT 285
9.3.3 编辑器 286
9.3.2 知识库和推理 286
9.3.4 动作 288
9.3.5 使用数据库 289
9.4 对象和面向对象的程序设计 291
9.4.1 消息、晚约束、虚拟方法 292
9.4.2 数据隐藏 293
9.4.4 结论 295
9.4.3 对象限制 295
10.1 概述 296
第十章 软件开发工具 296
10.2.1 对话框编缉器ViewPaint 297
10.2 Protogen+Workbench 297
10.1.1 阅读顺序 297
10.2.3 ProtoView屏幕管理器Screen Manager 299
10.2.2 WinControl库 299
10.3 SQLView 305
10.3.2 方法 306
10.3.1 字段控制项 306
10.3.3 SQLView API 307
10.3.4 出错处理 309
10.4 ProtoView的ProtoGen+ 311
10.3.5 可视开发示例 311
10.4.2 创建用户界面的步骤 312
10.4.1 应用程序再生成 312
10.5.1 安装 314
10.5 ProtoView的DataTable 314
10.6 Graphics Server SDK和ChartBuilder 315
10.7 Oracle Glue for Windows 316
10.6.1 图形功能 316
10.7.1 容器 317
10.7.2 Glue结构和API 318
10.7.4 SQL Glue语言 319
10.7.3 Generic Glue DLL 319
10.7.5 Palmtop Glue和Wizards 321
10.7.7 Wizlink示例应用程序 323
10.7.6 用Visual Basic Glue编程 323
10.8 Magic Fields 328
10.8.1 Magic Fields API 329
10.9 WindowsMAKER概述 330
10.9.2 EFM扩展功能模块 331
10.9.1 可视屏幕设计器Visual Screen Designer 331
10.9.3 速览 332
10.10 Visual AppBuilder 333
10.10.1 直观编程技术 334
10.10.2 设置窗口布局 335
10.10.4 Browser对象 336
10.10.3 Database ALM和Database对象 336
10.10.6 其它Database ALM对象 337
10.10.5 Table对象 337
10.10.8 客户-服务器示例程序 342
10.10.7 使用AppBuilder的客户-服务器ALM 342
11.1 ObjectView 345
第十一章 客户-服务器工具箱 345
11.1.1 数据库界面 346
11.1.2 Visual SQL和Personal SQL 349
11.1.3 Workgroup Library 350
11.1.5 命令文件 351
11.1.4 其它功能 351
11.1.7 用ObjectView开发应用程序 352
11.1.6 开发周期 352
11.1.8 ObjectView脚本 353
11.1.9 面板事件 354
11.2 Gupta SQLWindows 355
11.1.10 ObjectView和TODO列表示例应用程序 355
11.2.1 对象和数据类型 356
11.2.2 消息 357
11.2.3 SQL编程 358
11.2.5 EditWindows 361
11.2.4 ReportWindows 361
11.2.6 TeamWindows 362
11.2.8 用TeamWindows建立一个PERINFO数据词典 363
11.2.7 数据词典 363
11.2.10 查询窗口应用示例 364
11.2.9 模板库 364
11.2.11 SQLWindows 5.0 367
11.3 Powersoft公司的PowerBuilder 370
11.3.1 画板 371
11.3.2 PowerScript编程 375
11.3.3 库、可执行映象和INI文件 379
11.3.4 ODBC界面 380
11.3.5 PowerBuilder和OLE 381
11.3.7 高级开发人员工具包 382
11.3.6 扩充PowerBuilder 382
11.3.10 示例SQL脚本 383
11.3.9 报告生成和PowerViewer工具 383
11.3.8 资源需求 383
11.3.11 建立PERSINFOToDo示例浏览程序 386
12.1 Microsoft FoxPro for Windows 391
第十二章 客户或客户-服务器(FoxPro和Access) 391
12.1.4 RQBE 392
12.1.3 菜单构造器和报告编写器 392
12.1.1 结构 392
12.1.2 屏幕构造器 392
12.1.6 为示例应用程序建立FoxPro表 393
12.1.5 使用索引文件 393
12.1.7 FoxApp和示例应用程序 400
12.1.8 FoxPro连接性工具包 403
12.1.9 FPSQL编程 404
12.1.10 获得ODBC数据源表信息 406
12.1.11 用ODBC执行远程查询 407
12.1.12 演示Foxpro连接性的执行信息系统 408
12.2 Microsoft Access 409
12.2.1 数据库的组织和授权 411
12.2.2 表和视图 412
12.2.3 引用完整性 413
12.2.4 查询 414
12.2.5 窗体 417
12.2.7 优化Access应用程序 418
12.2.6 报告 418
12.2.9 事件 419
12.2.8 宏 419
12.2.11 SQL和数据类型 421
12.2.10 DDE和OLE 421
12.2.13 数据类型的对应关系 425
12.2.12 Btrieve文件 425
12.3 用Access和Access Engine建立ODBC连接性 426
12.3.4 动态集和抽样 427
12.3.3 光标确认状态 427
12.3.1 光标模型 427
12.3.2 连接和语句 427
12.3.5 一级ODBC和单一索引 428
12.3.8 本地处理和异构联结 429
12.3.7 SQL转发查询 429
12.3.6 输出数据 429
12.3.10 配置信息 430
12.3.9 服务器数据的修改 430
12.4 在Access和Visual Basic中用数据访问对象编程 431
12.3.11 经常问到的问题 431
12.4.1 利用数据访问对象编程注意事项 433
12.4.2 集合中对象的处理方法 435
12.4.4 Database对象 436
12.4.3 DBEngine对象 436
12.4.6 Document对象 437
12.4.5 Container对象 437
12.4.9 User对象 438
12.4.8 Group对象 438
12.4.7 Relation对象 438
12.4.11 Field对象 439
12.4.10 Workspace对象 439
12.4.12 Index对象 440
12.4.14 QueryDefs 441
12.4.13 TablesDef和Database的结构信息 441
12.4.15 Parameter对象 442
12.4.16 记录集 443
12.4.17 Property对象 446
12.4.19 Feild属性 451
12.4.18 将来的考虑 451
12.4.21 Access数据库示例 452
12.4.20 索引 452
12.5 关于在客户-服务器应用程序中使用.Access时的性能提示 453
12.5.3 连接 454
12.5.2 窗体 454
12.5.1 本地表 454
12.5.9 加锁 455
12.5.8 查询 455
12.5.4 时戳 455
12.5.5 事务 455
12.5.6 索引 455
12.5.7 存储过程 455
13.1 概述 456
第十三章 利用Visual Basic进行数据库程序设计 456
13.1.1 方法选择 461
13.1.2 利用数据控制项进行程序设计 463
13.1.3 数据控制项示例 464
13.1.4 调用ODBC API函数 465
13.1.5 开发人员注意事项 473
13.1.7 OLE Automation客户 474
13.1.6 对象层同API之比较 474
13.1.8 存储过程 475
13.1.9 多媒体和媒体控制界面(MCI) 477
13.1.10 优化VB 478
13.2 E-mai、通讯及MPAI 481
13.3 电子窗体设计器 482
13.3.2 用MEF更新数据库 485
13.3.1 登记表示例 485
13.4 Visual Basic的附加功能(Add-ons) 486
13.3.3 分布式报表应用程序 486
13.4.2 Visual Basic的自定义控制项 487
13.4.1 约束控制项 487
13.5 INTERSOLV MultiLink/VB 491
13.5.2 利用MultiLink/VB进行程序设计 492
13.5.1 自定义控制项 492
13.6 Visual Basic for Application 498
13.6.1 结束语 500
14.1 基础 501
第十四章 用C++进行数据库程序设计 501
14.3 Windows 95 SDK 503
14.2 部件开发(DLL、VBX、OCX) 503
14.7 消息和事件处理 504
14.6 Wizards和Experts 504
14.4 客户-服务器工具箱 504
14.5 程序库 504
14.9 用记录字段交换和传送缓冲区处理记录 506
14.8 可顺序化和可变为数据流的对象 506
14.12 异常处理和模板 507
14.11 文档/视图结构 507
14.10 资源编辑器 507
14.14 Borland C++ 508
14.13 浏览器 508
14.14.3 WinSight和WinSpector 509
14.14.2 Resource Workshop 509
14.14.1 类库 509
14.14.4 IDE、AppExpert和ClassExpert 510
14.14.5 IDE调试、Turbo调试器 511
14.14.6 数据流 513
14.14.7 ObjectWindows Library(OWL) 513
14.15 ObjectWindows 2.0类 514
14.15.1 用OWL开发数据库 517
14.16 Microsoft Visual C++ 519
14.15.2 Borland数据库引擎 519
14.16.2 AppWizard和ClassWizard 520
14.16.1 可视工作台 520
14.16.3 Microsoft Foundation Classes(MFC) 521
14.16.4 MFC类层次结构 522
14.16.6 集成式调试方法和CodeView 525
14.16.5 AppStudio 525
14.16.9 用VER.DLL进行版本控制 527
14.16.8 多线索例行程序 527
14.16.7 异常处理和模板 527
14.17 开发ODBC应用程序 528
14.18.2 多形性 529
14.18.1 设计方面的问题 529
14.18 开发SQL类 529
14.18.4 C++和SQL对象 530
14.18.3 注意事项 530
14.18.5 开发QELIB类 531
14.18.6 开发ODBC类 532
14.18.8 程序举例:用ODBCDict和QEStruct建立元数据 535
14.18.7 建立应用程序 535
14.18.9 QEStruct 537
14.18.10 询问后端 538
14.18.11 扩展原则 539
15.1 Borland的C++和Visual Solutions Pack 541
第十五章 用C++编写数据库应用程序 541
15.1.1 日期格式 542
15.1.2 数据库操作 544
15.1.4 修改To Do示例 548
15.1.3 触发器 548
15.1.5 应用Integra VDB和Visual C++ 551
15.2 MFC数据库类 553
15.2.1 数据库类 556
15.2.2 记录集类 557
15.2.4 数据库例外情况类 561
15.2.3 记录视图类 561
15.3 数据交换(Data Exchange)类 562
15.2.5 BLOB(长二进制类) 562
15.3.2 光标库 563
15.3.1 ODBC符合性问题 563
15.3.4 AppWizard中确定数据库支持能力的选项 564
15.3.3 MFC部件 564
15.3.5 示例应用程序 565
15.4 对多个记录集使用单个数据库对象 577
15.5.1 OLE Control Developer’s Kit 578
15.5 OLE和OCX 578
15.5.3 为什么使用CDK 581
15.5.2 约束控制项 581
16.2 OLE与传统方法之比较 582
16.1 概述 582
第十六章 用OLE 2.0编程 582
16.3 互操作对象的标准 583
16.4.2 部件对象模型 584
16.4.1 术语、概念及功能 584
16.4 OLE 2.0的结构 584
16.4.3 用户界面问题 585
16.4.5 复合文档和嵌入对象 586
16.4.4 链接和路标 586
16.4.9 唯一标识符和注册数据库 587
16.4.8 界面继承性 587
16.4.6 嵌入和链接问题 587
16.4.7 对象界面 587
16.4.10 调度操作、并发操作及通知单 588
16.4.12 结构化存储和数据流 589
16.4.11 数据对象和统一的数据传送 589
16.4.15 OLE Automation 590
16.4.14 现场激活操作 590
16.4.13 剪贴板和拖动-释放操作 590
16.4.16 OLE界面和函数 591
16.5 MFC和OLE 2类 596
16.4.18 对象测试工具DispTest 596
16.4.17 调试 596
16.5.1 OLE类 598
16.5.3 更新注册数据库 601
16.5.2 MFC 2.5不具备的OLE 2功能 601
16.5.4 应用MFC的自动化服务器示例 602
16.5.5 考察应用程序类 603
16.5.7 考察文档类 605
16.5.6 发送界面 605
16.5.8 属性的获取、设置及实现 611
16.5.9 方法的实现 612
16.5.10 发送图 613
16.5.12 Visual Basic for Application 614
16.5.11 自动化客户示例 614
17.1 Sharp Wizard 616
第十七章 附加内容 616
17.2 监测和跟踪工具 618
17.1.1 Oracle Palmtop Glue 618
17.2.1 odbc Inspector 619
17.2.3 Dr.DeeBee工具 620
17.2.2 SQL Inspector 620
17.3 DataSymc 623
17.3.2 子集定义 624
17.3.1 规则与操作 624
17.4 Access的向上适化工具 625
17.5 RoboHelp 626
17.4.1 授权 626
17.6 Query Analyzer 627
17.7.1 工作组应用程序 628
17.7 SQL Code Profiler 628
17.9 Lotus Notes连接性 629
17.8 Schedule+ 629
17.10 在数据库应用程序中使用声音 630
17.9.1 VB/Link 630
17.10.3 Windows Sound System 631
17.10.2 语音识别 631
17.10.1 在报警中加上语音和声音 631
17.11 Video for Windows 636
17.11.1 AVI数据的MCI命令消息 637
17.12 Computer Eyes 638
17.11.2 MCI控制项 638
A.2 重要说明 639
A.1 学习用的CD-ROM 639
附录A 伴随本书学习用软件的说明 639
A.3 CD-ROM的内容 640
A.4 示例数据库的SQL脚本 642
A.5.1 Code Manager和Search Professional 643
A.5 Windows软件 643
A.4.1 ScreenCam电影 643
A.4.2 ODINFO 643
A.5.5 ODBSEEME 644
A.5.4 Microsoft ODBC桌面驱动程序 644
A.5.2 Crystal Reports for Windows 644
A.5.3 ObjectView的一个有限版本 644
A.5.10 SDK Technologies S-Designor评估工具包 645
A.5.9 Windows环境下的Watcom SQL 3.2运行系统 645
A.5.6 Q+E Database Library和MultiLink/VB 645
A.5.7 Quadbase-SQL 3.0a 645
A.5.8 Micrososft Video for Windows的运行系统 645
附录B 用于客户PC的ODBC初始化(ODBC.IMI)文件示例 646
附录C ODBC应用程序和工具的来源 653
附录D 与ODBC驱动程序厂家的联系方法 658