第1章 开发多层客户/服务器应用程序
1.1 应用程序体系结构
1.1.1 桌面应用程序体系结构概述
1.1.2 2层应用程序体系结构概述
1.1.3 3层应用程序体系结构概述
1.1.4 n层应用程序体系结构概述
1.1.5 关于2层客户/服务器应用程序
1.1.6 2层客户/服务器应用程序的物理部署
1.1.7 关于3层客户/服务器应用程序
1.1.8 3层客户/服务器应用程序的物理部署
1.1.9 关于对象模型
1.1.10 建立一套应用程序
1.1.11 明天的老系统
1.2 配置样例应用程序
1.2.1 配置一个3层客户/服务器应用程序
1.2.2 配置Mom-n-Pop Video Store应用程序
第2章 在一个对象模型中运用COM对象
2.1 关于对象
2.1.1 关于Visual Basic编程语言
2.1.2 对象与编程
2.2 了解对象模型
2.2.1 Mom-n-Pop Video Store对象模型
2.3 状态对象和事务处理
2.3.1 基于商业的设计
2.3.2 状态和事务处理的候选解决方案
2.4 标准COM类型
2.4.1 Unicode和BSTR字符串
2.4.2 与BSTR类型相关的Win32函数
2.4.3 使用CURRENCY类型
2.4.4 COM数据类型转换函数
2.4.5 使用Variant类型
2.4.6 使用安全数组工作
2.5 在一个COM应用程序中查错
2.6 遍历——使用一个对象模型
2.6.1 使用AppWizard来创建对话框应用程序
2.6.2 加入代码初始化COM
2.6.3 引入类型库
2.6.4 添加一个列表框来显示成员
2.6.5 在列表框中显示成员
2.6.6 对UI代码的进一步分析
第3章 使用OLE DB访问数据库
3.1 什么是OLE DB
3.1.1 关于示例程序
3.2 使用OLE DB接口
3.2.1 关于第一个OLE DB示例应用程序
3.2.2 初始化数据源
3.2.3 创建数据源上的一个会话
3.2.4 命令对象
3.2.5 关于OLE DB行集对象
3.2.6 关于OLE DB访问者
3.2.7 包含第一个例子中的注释
3.2.8 使用OLE DB的参数化查询
3.2.9 关于第二个OLE DB示例应用程序
3.2.10 创建一个参数化的命令
3.2.11 绑定参数
3.2.12 用参数执行一个命令
3.2.13 使用参数化命令来修改数据
3.2.14 使用OLE DB接口执行事务处理
3.2.15 关于ITransactionLocal接口
3.2.16 隔离层和StartTransaction方法
3.2.17 Zombie行集
3.2.18 事务处理保持
3.2.19 OLE DB事务处理示范程序
3.3 使用OLE DB服务组件
3.3.1 使用MDAC来打开一个数据源
3.3.2 使用一个连接字符串
3.4 使用OLE DB模板
3.4.1 引入OLE DB模板类
3.4.2 CDataSource和CDBPropSet类
3.4.3 CSession类
3.4.4 CCommand和CAccessor模板类
3.4.5 使用CCommand去打开一个行集
3.4.6 使用OLE DB模板取回行
3.4.7 关闭数据源、会话和行集
3.4.8 使用ATL Object Wizard来创建一个CRowset类
3.4.9 使用OLE DB模板的参数化查询
3.4.10 使用OLE DB模板执行一个参数化查询
3.4.11 提供参数绑定信息
3.4.12 提供参数值
3.4.13 使用OLE DB模板修改数据
3.4.14 事务处理和OLE DB模板类
3.4.15 服务组件和OLE DB模板
3.4.16 连接字符串和OLE DB模板
3.5 ADO记录集和OLE DB行集等价类
3.5.1 将一个行集转换为一个记录集
3.5.2 将一个记录集转换为一个行集
3.6 使用Data Link API
3.6.1 数据链接属性对话框
3.7 使用COleDBRecordView类
3.7.1 一个简单的COleDBRecordView应用程序
3.7.2 产生一个简单COleDBRecordView应用程序
3.7.3 由AppWizard产生的用作OLE DB记录视图的类
3.7.4 为数据库列提供控件
3.7.5 加入一个Update Now按钮
3.8 一个有所有特征的OLE DB记录视图应用程序
3.8.1 使用多访问器
3.8.2 使用COleDBRecordView增加新记录
3.8.3 使用COleDBRecordView删除一个记录
3.8.4 使用书签浏览行集
第4章 使用ADO访问数据库
4.1 ADO和OLE DB
4.1.1 ADO和OLE DB所解决的问题
4.1.2 ADO还是OLE DB
4.2 ADO对象模型
4.3 ADO Connection对象
4.3.1 ConnectionString属性
4.3.2 关于第一个ADO演示程序
4.3.3 引入ADO类型库
4.3.4 使用ADO连接数据库
4.3.5 Connection对象的Mode属性
4.3.6 举例:使用ADO连接数据库
4.4 ADO Recordset对象
4.4.1 关于ADO Recordset光标
4.4.2 使用ADO打开一个记录集
4.4.3 例子:打开一个记录集
4.4.4 在记录集中访问字段
4.4.5 使用移动方法在记录集中滚动
4.4.6 记录集的重新查询和再同步
4.5 使用ADO记录集绑定
4.5.1 使用CADORecordBinding类
4.5.2 向ADO提供绑定信息
4.5.3 从被绑定的记录集中取回数据
4.6 使用ADO Command对象
4.6.1 构造一个SQL SELECT语句
4.6.2 ADO Command对象和参数化查询
4.6.3 在一个命令中使用多个ADO参数
4.6.4 用GetRows方法一次取回多行数据
4.7 用ADO进行事务处理
4.8 更新记录集中的记录
4.9 Mom-n-Pop Video Store案例分析
4.9.1 从数据库中取出过期罚款数据
4.9.2 根据姓氏查找成员
4.10 调用存储过程
第5章 实现一个对象模型
5.1 COM服务器回顾
5.1.1 进程内和进程外的COM服务器
5.2 建立一个进程内COM服务器项目
5.2.1 有用户界面的测试项目
5.3 实现一个简单的对象模型
5.3.1 第一个简单对象模型的实现目标
5.3.2 创建ATL项目
5.3.3 启动ATL跟踪信息
5.3.4 创建ATL对象
5.3.5 分析ATL Wizard产生的代码
5.3.6 顶层对象和Appobject属性
5.3.7 不可创建的公共COM类
5.3.8 参与实现集合的对象
5.3.9 集合的类型
5.3.10 实现Category类
5.3.11 实现Categories集合
5.3.12 指定一个默认属性
5.3.13 增加一个集合访问属性
5.3.14 用Visual Basic测试对象模型
5.3.15 为类型库提供一个友好描述
5.3.16 创建和使用COM枚举器
5.3.17 保持集合和ATL通用枚举器
5.3.18 使用ATL通用枚举器
5.3.19 用CComEnum支持空集合
5.3.20 用查询结果建立集合
5.3.21 访问数据库创建集合
5.3.22 为Item方法提供异构参数
5.3.23 支持ISupportErrorInfo接口
5.3.24 3层体系结构的对象模型
5.3.25 Mom-n-Pop对象模型案例分析
5.3.26 背景
5.3.27 访问Categories集合
第6章 DCOM
6.1 关于DCOM
6.1.1 DCOM提供的服务
6.1.2 OSF/DCE和远程过程调用
6.1.3 在使用DCOM之前
6.2 DCOM纵览
6.2.1 服务器端本地服务器的COM注册表入口
6.2.2 客户端远程服务器DCOM注册表入口
6.2.3 使用代理(surrogate)容纳远程进程内服务器
6.2.4 创建一个DCOM服务器项目
6.2.5 实现和创建服务器
6.2.6 实现客户测试程序:用户界面
6.2.7 远程运行服务器
6.2.8 权限错误
6.2.9 使用CoCreateInstanceEx
6.3 解决与DCOM相关的问题
6.3.1 使用错误查找实用工具
6.3.2 使用事件查看器
第7章 微软事务处理服务器
7.1 关于MTS
7.1.1 MTS运行时期环境
7.1.2 关于MTS资源管理器(explorer)实用工具
7.1.3 MTS包和组件
7.1.4 创建一个MTS包
7.1.5 把MTS组件安装到包之中
7.1.6 运行和监控MTS组件
7.1.7 使用按需激活
7.2 MTS API
7.2.1 关于IObjectContext接口
7.2.2 连接池
7.2.3 使用IObjectContext接口
7.2.4 MTS组件的限制
7.2.5 MTS中的事务
7.2.6 MTS组件和事务的形成
7.2.7 MTS组件的事务属性
7.3 有状态的和无状态的MTS对象
7.3.1 伪装的2层体系结构
7.3.2 按需激活
7.3.3 实现IObjectControl接口
7.3.4 MTS事务支持的例子
7.4 调试MTS组件
7.5 MTS共享属性管理器
7.5.1 CreatePropertyGroup方法
7.5.2 对共享属性的线程安全的引用
7.5.3 共享属性管理器的例子
7.6 开发MTS服务器
7.7 安全性和MTS
7.7.1 MTSDemo4——MTS安全性的例子
7.7.2 MTS包标识——第一道防线
7.7.3 声明级安全——第二道防线
7.7.4 定义MTS组
7.7.5 为声明级安全启用包认证
7.7.6 把NT用户账号加入到MTS组中
7.7.7 编程级安全是怎样工作的
7.7.8 判断是否启用了安全保护
7.7.9 使用IsCallerInRole方法
第8章 使用MTS实现数据服务层
8.1 对MTS组件的要求
8.1.1 用MTS组件实现商业规则
8.1.2 存储过程的作用
8.1.3 集中注意商业
8.1.4 每层都有用
8.2 Mom-n-Pop MTS组件
8.2.1 MTS组件MemberData
8.2.2 MTS组件VideoData
8.2.3 MTS组PointOfSale
8.2.4 举例:使用共享属性管理器
8.2.5 对象交互的情况——通过ID查找成员
第9章 使用Active Server Pages创建Internet界面
9.1 关于ASP
9.1.1 Mom-n-Pop Web站点
9.2 创建ASP
9.2.1 向ASP页面中增加脚本命令
9.2.2 ASP的内建对象
9.2.3 在ASP脚本中声明和使用变量
9.2.4 向浏览器发送内容
9.2.5 HTML表单和Request对象
9.2.6 在ASP脚本中创建对象
9.2.7 在ASP脚本中处理记录集