| 作者 |
| Roger Jennings |
| 丛书名 |
| 软件开发技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9787111072683 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书详细叙述了使用Visual Basic 6进行各种数据库应用程序开发的方法,全书共分为七大部分,分别叙述了ActiveX数据对象和绑定控件、数据库和查询设计概念、数据库前端应用程序设计、数据存取和自动化高级编程、多用户与客户/服务器数据库前端、数据库与intranet和Internet及企业级开发技术,几乎覆盖了使用Visual Basic 6开发数据库应用程序的各个方面,并且包含大量示例,具有很好的参考价值。 本书叙述清晰,实用性强,是计算机应用人员及大专院校师生不可多得的参考书。 本书详细叙述了使用Visual Basic 6进行各种数据库应用程序开发的方法,全书共分为七大部分,分别叙述了ActiveX数据对象和绑定控件、数据库和查询设计概念、数据库前端应用程序设计、数据存取和自动化高级编程、多用户与客户/服务器数据库前端、数据库与intranet和Internet及企业级开发技术,几乎覆盖了使用Visual Basic 6开发数据库应用程序的各个方面,并且包含大量示例,具有很好的参考价值。 本书叙述清晰,实用性强,是计算机应用人员及大专院校师生不可多得的参考书。 |
| 目录 |
| 目 录 译者序 前言 第一部分 ActiveX数据对象和绑定控件 第1章 Visual Basic对企业级开发的支持 1 1.1 与Visual Basic 6数据相关的新特性 1 1.2 过渡到OLE DB和ADO 4 1.2.1 OLE DB 5 1.2.2 ActiveX数据对象 6 1.3 剖析Data Environment Designer和Data View窗口 7 1.4 采用ADO兼容的控件 11 1.5 绑定层次型FlexGrid到Recordset 13 1.6 利用Data Report Designer设计打印 报表 14 1.7 利用Data Form Wizard自动化设计 16 1.8 绑定数据源和使用者 17 1.9 使用Visual Data Tools 18 1.10 掌握Microsoft SQL Server 20 第2章 理解OLE DB和Universal Data Access 22 2.1 数据接口 22 2.1.1 利用OLE DB自下而上重新设计 23 2.1.2 映射OLE DB接口到ADO 25 2.2 创建ADODB.Recordset 26 2.2.1 编码打开ADODB.Connection之上 的ADODB.Recordset对象 27 2.2.2 从DataEnvironment对象打开 ADODB.Recordset对象 28 2.2.3 绑定DataGrid控件到Command对象 31 2.2.4 使基于Command的Recordset成为 可更新的 32 2.3 剖析顶层ADO的属性、方法和事件 33 2.3.1 Object Browser和ADO 33 2.3.2 ADODB.Connection对象 34 2.3.3 ADODB.Command对象 45 2.3.4 ADODB.Recordset对象 51 2.4 分析特定提供者ADODB.Properties 集合 60 2.4.1 Connection对象的Properties集合 61 2.4.2 Command对象的Properties集合 65 2.4.3 Recordset对象的Properties集合 66 第3章 从DAO和RDO过渡到ADO 68 3.1 比较ADO、DAO和RDO对象模型 68 3.1.1 ADO 2.0和DAO 3.5x 69 3.1.2 ADO 2.0和RDO 2.0 71 3.2 从DAO.Recordset到ADODB.Recordset 对象 72 3.2.1 比较DAO.Recordset和ADODB. .Recordset的属性 72 3.2.2 比较DAO.Recordset和ADODB. Recordset的方法 73 3.3 利用VBA代码处理ADODB.Recordset 对象 74 3.3.1 直接创建Recordset 75 3.3.2 在Connection对象上打开Recordset 76 3.3.3 在Command对象上打开Recordset 77 3.3.4 为安全的数据库指定Jet Workgroup 文件 78 3.3.5 表的批量更新 79 3.4 利用ADODB. Recordset的新特性 80 3.4.1 存储和打开文件型Recordset 80 3.4.2 用Variant值和数组来编辑和添加 记录行 81 3.4.3 用Close和Open方法重用Connection 和Recordset对象 82 3.5 采用ADODB. Recordset的Find方法 86 3.6 从rdoResultsets和ODBCDirect Recordset 过渡到ADODB. Recordset 89 3.6.1 比较rdoResultset和ADODB. Recordset 的属性 89 3.6.2 比较rdoResultset和ADODB. Recordset 的方法 90 3.6.3 比较rdoResultset和ADODB. Recordset 的事件 90 3.7 理解层次型Recordset 90 3.7.1 用Data Environment Designer创建 Relational Hierarchical Recordset 93 3.7.2 在层次型FlexGrid控件中显示层次 型Recordset 95 3.7.3 用层次型Recordset取代Access的 Form/Subform组合 96 第4章 使用ADO Data控件和绑定控件 98 4.1 创建带有用来显示和编辑数据的文 本框的窗体 98 4.1.1 使用Data Form Wizard创建数据项 窗体 98 4.1.2 向Data Environment Designer窗体 中添加ADODC 103 4.2 剖析ADODC数据相关的属性和事件 107 4.2.1 ADODC的属性 107 4.2.2 ADODC的事件 109 4.3 介绍成批乐观更新 109 4.4 简单绑定数据使用者控件 110 4.4.1 设置DataFormat属性值 110 4.4.2 用代码对控件实现简单绑定 112 4.5 复杂绑定数据使用者控件 113 4.5.1 绑定DataGrid到DataEnvironment 对象 113 4.5.2 从绑定DataList控件中选择条目 116 4.5.3 绑定DataList控件 119 第二部分 数据库和查询设计概念 第5章 优化关系数据库的设计 123 5.1 数据库系统分类 123 5.1.1 数据库术语 125 5.1.2 平面文件数据库 127 5.1.3 网络和层次数据库模型 127 5.1.4 关系数据库模型 128 5.1.5 关系数据库管理者类型 129 5.1.6 关系型SQL数据库管理系统 130 5.1.7 三层客户/服务器体系结构和商业 规则 130 5.1.8 Microsoft Access:混合的 RDBMS 132 5.2 数据建模 132 5.2.1 数据库图表 133 5.2.2 在数据库设计中使用建模工具 134 5. 3 关系数据库的设计规则 134 5.3.1 组织实体类 135 5.3.2 规范化表数据 136 5.4 为提高性能和域完整性而建立 索引表 140 5.4.1 表索引方法 141 5.4.2 选择建立索引的字段 142 5.5 数据仓库和OLTP数据分析 143 第6章 学习结构化查询语言 146 6.1 SQL基础回顾 147 6.1.1 SQL语句的成份 147 6.1.2 SQL与计算机程序语言的差异 148 6.1.3 ANSI SQL的类型 149 6.2 书写ANSI SQL语句 150 6.2.1 SQL语句的分类 151 6.2.2 SQL语法格式 152 6.2.3 一个简单的SQL SELECT语句的 实用语法 153 6.2.4 利用可视化数据示例应用程序来 浏览查询 154 6.2.5 SQL操作符和表达式 157 6.2.6 连接表 159 6.2.7 使用嵌套查询和子查询 166 6.2.8 联合查询 168 6.2.9 SQL汇总函数和GROUP BY及 HAVING子句 169 6.3 比较Jet SQL方言和ANSI SQL-92 171 6.3.1 ANSI SQL保留字和Jet SQL 关键字 171 6.3.2 ANSI SQL和Jet SQL间的数据类型 转换 173 第7章 运行交叉表和动作查询 175 7.1 用交叉表查询表示汇总数据 175 7.2 用TRANSFORM和PIVOT创建交叉表 查询 178 7.2.1 用谓词IN创建固定列标题 180 7.2.2 创建分类交叉表查询 181 7.3 把交叉表查询作为DataEnvironment 命令执行 181 7.4 定义动作查询 183 7.4.1 用VBA代码执行动作查询 184 7.4.2 VBA代码中动作查询的等价体 184 7.4.3 执行动作查询时维护引用一致性 185 7.5 使用SQL动作查询 185 7.5.1 用制表查询创建新表 185 7.5.2 向已存在的表中添加记录 186 7.5.3 更新表中数据值 187 7.5.4 从表中删除记录 187 第8章 用ODBC连接桌面数据源 188 8.1 理解ODBC API的结构 189 8.1.1 单层和多层ODBC驱动程序 190 8.1.2 ODBC API的一致性级别 190 8.1.3 ODBC SQL一致性级别 190 8.1.4 内置的ODBC标量函数 192 8.2 浏览ODBC初始化文件和注册表记录 193 8.2.1 三种DSN类型 193 8.2.2 Odbcinst.ini 194 8.2.3 Odbc.ini 196 8.2.4 ODBCINST.INI和ODBC.INI的注 册表键值 197 8.2.5 连接组合和跟踪 197 8.3 为dBASE表创建和使用DSN 198 8.3.1 创建新的System DSN 199 8.3.2 通过Kagera连接到dBASE数据源 200 第三部分 数据库前端应用程序设计介绍 第9章 设计一个决策支持前端应用 程序 203 9.1 组织决策支持前端应用程序幕后的 数据 203 9.1.1 指定数据源 204 9.1.2 确定所需细节的层次 205 9.1.3 利用Rollup(累计)保证性能和数据 一致性 206 9.2 设计查询策略 207 9.2.1 放弃Jet QueryDef对象 207 9.2.2 设计SQL累计查询 208 9.2.3 从Access导入QueryDef SQL语句 210 9.2.4 实现特定查询 214 9.3 设计用户界面 214 9.3.1 优化应用程序的易用性 214 9.3.2 确认Toolbar按钮的功能 218 9.4 创建和使用按钮栏和工具栏 219 9.4.1 获得和修改按钮的位图 219 9.4.2 添加代码以显示和隐藏窗体 220 9.5 由累计数据创建图表 220 9.5.1 创建Line Graph 221 9.5.2 制作Bar和Area Chart 223 9.5.3 显示Pie Chart 225 9.6 用MSFlexGrid控件来显示详细数据 226 第10章 利用数据绑定ActiveX控件 230 10.1 操作DataGrid和分层FlexGrid 230 10.1.1 定义DataGrid控件格式 231 10.1.2 DataGrid控件的特殊属性、方法 和事件 234 10.1.3 定义MSFlexGrid和MSHFlexGrid 控件的格式 237 10.2 创建和显示分层Recordset 243 10.2.1 用数据环境设计工具生成层式 命令 243 10.2.2 在MSHFlexGrid中显示rsCustomer Recordset 245 10.2.3 用代码操作层次Recordset 247 10.3 用PICTUREBOX和图像控件保存和 显示图像 249 10.3.1 用于索尼VISCA设备的VB视频 播放系统 249 10.3.2 使用AVIT Research的LANC ActiveX控件 254 10.3.3 捕获、显示和存储视频图片 254 10.3.4 为Adobe Premiere创建批捕获 日志 255 第11章 图形化显示Crosstab查询所产生 的汇总数据 257 11.1 组织一个基于Chart的决策支持应用 程序 257 11.1.1 在单一应用程序中组合管理 级别 258 11.1.2 开发一个图表的定义表格 259 11.1.3 创建测试应用程序的数据 261 11.2 为复杂决策支持应用程序确定导航 方法 264 11.2.1 使用多文档界面 265 11.2.2 设计导航工具条 266 11.2.3 MDI父窗体的菜单结构 267 11.2.4 用代码来改变工具条按钮、MDI 子窗体和图的大小 268 11.2.5 在设计状态下设置Graph的属性 269 11.2.6 实现前两个图表级别 271 11.2.7 为MDI子窗体增加详细网格 276 11.2.8 添加图和表的导航代码 281 11.2.9 打印和保存图和表 283 第12章 利用Report Designer和VBA代 码创建报表 285 12.1 设计和打印一个简单的DataReport 285 12.1.1 首先设计一个半格式化的简单 报表 286 12.1.2 调整大小、对齐和格式化数据 控件 288 12.1.3 设置打印边界 288 12.2 对细节记录进行分组 289 12.2.1 为实现分组创建子Command 289 12.2.2 添加Group Header和Footer 到报表 290 12.3 使用Command汇总进行Subtotal和 GrandTotal 291 12.3.1 添加组Subtotal到Command层次 291 12.3.2 添加Product子汇总到Group Footer 292 12.3.3 在层次型FlexGrid中显示Subtotal 汇总 294 12.3.4 为组汇总格式化MSHFlexGrid 控件 295 12.3.5 添加报表Grand Total 298 12.3.6 在Page Footer插入页号和日期 300 12.4 用行汇总实现Crossfooting报表 301 12.4.1 处理Crosstab查询结果集中的 Null值 302 12.4.2 添加行汇总到DataReport 303 12.5 用RptFunction控件取代汇总值 304 12.6 输出DataReport到HTML和Text 文件 306 12.7 用VBA代码实现打印 307 12.7.1 打印录像带标签 309 12.7.2 打印录像带 316 第四部分 数据存取和自动化的高级编程 第13章 从图表中追踪数据 323 13.1 利用Chart事件 323 13.1.1 用SeriesSelected事件选择一个 MSHFlexGrid行 325 13.1.2 用PointSelected事件选择单个 单元 326 13.2 从栈式区域图表显示单序列 327 13.3 在Drilldn.vbp项目中增加一个 Drilldown饼图 330 13.3.1 选择一个Drilldown加载策略 330 13.3.2 在设计阶段设置饼图的属性 331 13.3.3 生成饼图数据 331 13.4 利用MouseDown和Double_Click事件 激活Drilldown 333 13.5 用饼图选择追踪路径 335 13.6 用选定的Drilldown数据实例化一个 MSHFlexGrid 338 第14章 通过Jet和VBA进行调度和设备 控制 343 14.1 浏览Visual Basic节目单 344 14.1.1 使用键盘浏览功能 346 14.1.2 打开录制和设备控制的窗体 346 14.1.3 指定C波段卫星映射和IRD控制 347 14.2 使用WebTV的时间表数据库 348 14.3 比较大Recordset的DAO和ADO 的性能 351 14.4 将项目从DAO升级到ADO 354 14.4.1 打开新的ADODB.Recordset 对象 356 14.4.2 用Find代替复合的FindFirst和 FindNext方法 357 14.5 利用Recordset填充定制的网格 359 14.6 开发Visual Basic 6PG项目的剩余部分 368 14.6.1 实时操作 368 14.6.2 打印带盒标签和磁带 369 第15章 编写本地Automation组件和 ActiveXDLL 371 15.1 定义Automation组件的作用 371 15.2 确定使用进程内组件还是进程 外组件 373 15.2.1 进程内Automation组件 373 15.2.2 进程外Automation组件 374 15.3 建立一个简单的Automation组件 374 15.3.1 将时间段选择组件升级为32位 375 15.3.2 将32位Period Selection窗体转换 为Automation组件 376 15.3.3 调试Automation组件 382 15.3.4 Period Selection组件的错误处理 383 15.4 创建一个复杂的三层Automation 组件 384 15.4.1 设计Product Grouping组件 384 15.4.2 给Product Grouping类加入一个 Show方法 385 第16章 为数据库应用程序创建用户控件 387 16.1 使用DataRepeater控件仿制Access连 续窗体 387 16.1.1 设计和编辑简单的用户控件 389 16.1.2 在ActiveX控件中增加DataRepeater 控件 391 16.1.3 克服Recordset更新故障 393 16.2 使用向导生成Automation控件 395 16.2.1 设计可重用控件以节省窗体资源 395 16.2.2 使用ActiveX控件接口向导 395 16.2.3 在Customer Phone List中创建 最终窗体 398 16.2.4 使用属性页向导增加属性页 400 16.3 浏览BindingCollection对象 402 16.3.1 BindingCollection、Binding和stdData- Format对象的属性、方法和事件 402 16.3.2 使用DataBinding属性将Binding- Collection加入到用户控件中 404 16.4 调试数据绑定ActiveX控件 405 第五部分 多用户与客户/服务器数据库前端 第17章 多用户Jet数据库的网络安全 409 17.1 理解拓扑网络结构与操作 410 17.1.1 依据范围分类的PC网络 410 17.1.2 域、工作组、服务器和工作站 413 17.2 网络硬件和操作协议 414 17.2.1 网络驱动程序接口说明和网络适 配卡驱动程序 414 17.2.2 Windows NT中的网络协议栈 415 17.2.3 Windows 9x和Windows NT中的 TCP/IP 416 17.2.4 TCP/IP上的NetBIOS、Windows Socket API以及远程访问 417 17.2.5 Hub、变换机、网桥、路由器和 网关 418 17.2.6 数据存储冗余和备份系统 419 17.2.7 本章例子中使用的拓扑结构 和协议 420 17.3 登录到服务器并加入工作组 422 17.4 在网络环境中维护数据库安全 427 17.4.1 网络授权、权限和帐户 427 17.4.2 网络管理员、操作者和用户 429 17.4.3 使用NTFS分区的文件权限 430 17.5 理解Jet安全系统 433 17.5.1 分配用户帐户并保证Jet数据库 安全 433 17.5.2 使用Access 97 User Level Security Wizard 435 17.5.3 在Access早期版本中分配和撤销 组和用户的访问权限 437 17.6 使用Visual Basic 6和DAO 3.5编程 实现Jet安全特性 438 17.6.1 使用DAO 3.5浏览Users和Groups 集合 439 17.6.2 使用Container和Document对象 修改权限 441 17.7 OLE DB、ADO2.0与Jet安全 442 第18章 使用客户/服务器数据库 443 18.1 使用Microsoft SQL Server 444 18.1.1 SQL Server的网络特性 444 18.1.2 连接、线程和对称多处理 445 18.1.3 SQL Server 7.0 446 18.2 使用Access 97向导转换Nwind.mdb 至SQL Server 6.5 448 18.2.1 准备转换 449 18.2.2 使用Access 97转换向导 449 18.2.3 检验转换后的SQL Server 6.5 数据库 453 18.2.4 使用ISQL-w运行测试查询 455 18.2.5 将Jet表导入到SQL Server 7.0 456 18.2.6 创建一个新的nwind数据库 456 18.2.7 使用数据转换服务导入表 458 18.2.8 使用SQL Server查询分析器测试 nwind数据库 462 18.2.9 修改导入到SQL Server 7.0的表 463 18.2.10 修改表属性 463 18.2.11 增加表的索引 465 18.2.12 在Order-Details表中增加唯一 的混合索引 466 18.3 在数据库图表中指定主键和关系 468 18.4 使用本地SQL Server提供者 471 18.5 连接Oracle 8数据库 476 18.6 使用Visual Basic 6的可视化 数据工具 476 18.6.1 从Visual Basic中运行可视化 数据工具 477 18.6.2 创建SQL Server视图 477 18.7 在VBA代码中实现客户/服务器 连接 479 第19章 事务处理和块操作 481 19.1 事务的定义和ACID测试 481 19.1.1 Explicit与Implicit事务 482 19.1.2 连续性与事务孤立性级别 483 19.1.3 理解事务监视器的角色 484 19.2 使用ADO 2.x和VBA代码处理事务 485 19.2.1 事务指令的结构 485 19.2.2 Jet数据库的多表事务代码 487 19.2.3 在事务中使用Jet SQL 489 19.2.4 用Transact-SQL实现订单 入口事务 491 19.3 在多个数据库中分布事务 494 19.3.1 两段式提交和分布式事务坐标 495 19.3.2 复制 497 19.3.3 消息与事务 498 19.4 使用块更新和断开连接的 Recordsets 499 19.4.1 使用块更新 499 19.4.2 断开连接的Recordsets 499 19.4.3 使用绑定控件测试块更新 499 第20章 把ACCESS OLTP应用程序移 植到Visual Basic 6 507 20.1 为热线数据入口设计前端 507 20.2 OLTP项目的升级过程 509 20.3 步进完成移植过程的第一阶段 510 20.3.1 准备Access应用程序 511 20.3.2 创建所需的Visual Basic对象 511 20.3.3 导入并调试DAO代码 513 20.3.4 运行项目Vb5oltp或Ado2oltp 516 20.4 从DAO到ADO的变换 519 20.5 Ado2oltp项目代码概述 521 第21章 使用Transact-SQL存储过程 537 21.1 使用存储过程提高性能 538 21.2 存储过程语法 539 21.3 用存储过程替换SQL语句 542 21.3.1 存储过程命名约定 542 21.3.2 把Ado2oltp.frm的SELECT语句 转换为过程 543 21.3.3 创建存储过程 544 21.3.4 测试SELECT过程 549 21.3.5 用存储过程替换INSERT、 UPDATE和Transaction代码 550 21.4 在VBA代码中调用存储过程 553 21.4.1 执行只带输入参数的过程 554 21.4.2 使用带参数的DataEnvironment. Command对象 555 21.4.3 对参数集合编程 557 21.5 修改Ado2oltp应用程序 559 21.5.1 打开连接 559 21.5.2 设置存储过程参数 561 21.5.3 另一个存储过程执行方法 564 21.5.4 用本地存储的Recordset对象取代 Jet表 565 21.5.5 把Command对象传送给子过程 567 21.5.6 增加字段列表以容纳Timestamp 字段 569 21.6 使用T-SQL调试器调试存储过程 570 21.6.1 设置和测试T-SQL调试器 570 21.6.2 在设计模式下调试存储过程 573 21.6.3 在运行模式下进行调试 574 第六部分 数据库、INTRANET和INTERNET 第22章 把数据库与intranet和Internet集 成起来 575 22.1 Microsoft的数据神经系统 576 22.2 Windows分布式Internet应用程序 体系结构 577 22.3 Visual Basic 6中与Internet有关的 新特征 578 22.3.1 数据库访问的远程数据服务 578 22.3.2 Internet Information Server 4.0 应用程序的WebClass 579 22.3.3 动态HTML应用程序 580 22.3.4 使用打包和发行向导进行文件 分布 581 22.3.5 ActiveX文档的下载支持 581 22.3.6 Microsoft Transaction Server 2.0 支持 582 22.4 创建简单的数据使能WebClass项目 582 22.4.1 使用FrontPage 98创建WebClass 模板 582 22.4.2 创建WebClass项目并加入 DataEnvironment对象 584 22.4.3 加入Products.htm 585 22.4.4 显示ProductList查询的首记录 的数据 587 22.5 创建一个简单的DHTML项目 590 22.5.1 打开新的DHTML项目并增加 DHTML页 591 22.5.2 显示rsProductList Recordset 的数据 592 22.5.3 给dhProductList加上Recordset导 航按钮 595 第23章 在intranet中使用ActiveX 文档对象 597 23.1 把Ado2oltp.VBP项目转化为ActiveX 文档 597 23.1.1 ActiveX文档移植向导 598 23.1.2 修改代码并编译ActiveX DLL 600 23.2 打包ActiveX文档对象 601 23.3 多窗体项目的体系结构问题 605 23.3.1 进行窗体转换 605 23.3.2 修改代码 606 23.3.3 处理其余的代码 607 第24章 使用远程数据服务 608 24.1 RDS体系结构 608 24.1.1 传统数据库操作与RDS的比较 609 24.1.2 RDS 2.0自动化组件 610 24.2 RDS组件的方法、属性和事件 612 24.3 RDS.DataSpace对象 614 24.4 RDSServer.DataFactory对象 614 24.5 为显式和隐式远程编码 614 24.5.1 使用RDS.DataControl的 隐式远程 614 24.5.2 使用ADO 2.0对象和RDS.Data Control的显式远程 615 24.6 使用VBA对RDS编程 616 24.6.1 设置IIS 4.0和SQL Server 6.5+ 616 24.6.2 设计DHTMLPage 618 24.6.3 总装页面元素的代码 620 第25章 开发数据使能的Internet 应用程序 625 25.1 为运行VBLive进行设置 626 25.2 VBLive应用程序 627 25.3 VBLive的体系结构 631 25.3.1 VBA代码的约定和位置 632 25.3.2 WebClass代码执行跟踪 633 25.4 从结构资源产生HTML 637 25.5 直接从模板文件产生HTML 639 25.6 使用资源文件局部化内容 640 第七部分 企业级开发技术 第26章 Microsoft Transaction Server 2.0 643 26.1 MTS在中件市场中的地位 643 26.2 MTS在N层客户/服务器体系结构中 的地位 645 26.2.1 三层结构和N层结构 646 26.2.2 层间通信和状态组件 646 26.2.3 N层应用程序中的事务 647 26.3 在Windows NT Server 4.0下安装 MTS 2.0 649 26.3.1 增加MTS管理员帐户 649 26.3.2 设置MTS System package 的身份 651 26.3.3 测试MTS的本地安装 653 26.3.4 设置Sample Bank工具包和组件 的属性 655 26.4 在远程计算机上安装和运行 Bank Client 657 26.5 在工作站上安装MTS 2.0 659 第27章 创建和发行MTS组件 661 27.1 定义MTS组件候选 661 27.1.1 面向事务的组件 662 27.1.2 资源孤立组件 662 27.1.3 决策支持组件 663 27.2 设计高效的MTS组件 663 27.2.1 ObjectContext对象 665 27.2.2 共享属性管理工具 666 27.2.3 ObjectContext的SecurityProperty 对象 667 27.2.4 ObjectControl对象 667 27.2.5 MTS组件模板 667 27.3 转换单项客户以使用MTS组件 669 27.3.1 第一步:把数据访问操作 移向类 669 27.3.2 第二步:创建和测试Nwind ActiveX DLL 678 27.3.3 第三步:创建、安装和测试 Northwind工具包 680 27.3.4 第四步:把MTS组件移向产品 服务器 686 27.4 给工具包和组件增加安全性 687 第28章 使用OLAP和MDX分析 多维数据 690 28.1 理解测量和维数 691 28.1.1 OLTP与星型模式 692 28.1.2 减少事实表的存储需求 694 28.1.3 利用稀疏矩阵 694 28.2 部门级定义测量和维数 695 28.3 把OLAP服务程序和引擎分类 696 28.4 把信息传送给客户 699 28.4.1 OLAP的OLE DB和简单的 MDX句法 700 28.4.2 MDX示例应用程序 701 28.5 开发ADO MD对象 703 28.5.1 ADOMD.Catalog对象 703 28.5.2 ADOMD.Cellset对象 708 第八部分 附 录 术语 715 |