有没有好的oracle Application Express的参考书

kaeferin 2008-10-19 05:53:04
有没有用oracle Application Express? 请推荐几本好的参考书。谢谢
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinzhongdemeng 2010-04-15
  • 打赏
  • 举报
回复
我在用 你可以加上我的msn xinxiaofei123@hotmail.com
ncut224 2009-03-19
  • 打赏
  • 举报
回复
我现在也在学,也还真是很难找呢,没办法,只有看它的英文文档,但感觉也不易懂
kaeferin 2008-10-21
  • 打赏
  • 举报
回复
没有人用的吗?
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《Visual C++ 2010入门经典(第5版)》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2010入门经典(第5版) 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2010 原出版社: Wrox 作者: (美)Ivor Horton 译者: 苏正泉 李文娟 出版社:清华大学出版社 ISBN:9787302239994 上架时间:2010-12-20 出版日期:2010 年12月 开本:16开 页码:1011 版次:5-1 编辑推荐   本书针对visual c++ 2010版本做了全面更新,介绍了最新开发环境,讲述了如何使用visual c++构建真实世界的应用程序。    采用了容易理解的讲授方法,并提供了详尽的示例,旨在帮助读者掌握编程技巧 内容简介   作者ivor horton采用了容易理解的讲授方法,并提供了详尽的示例,帮助读者迅速地成为一名优秀的c++编程人员。《visual c++ 2010入门经典(第5版)》针对visual c++ 2010版本进行了全面更新,介绍了最新的开发环境和如何使用visual c++构建现实世界中的应用程序。拥有本书,您就迈向了通往使用两种c++版本编写应用程序的成功之路,并成为一名优秀的c++编程人员。    主要内容    ·使用visual c++ 2010支持的两种c++语言技术讲述c++编程的基础知识    ·分享c++程序的错误查找技术,并介绍通用的调试原则讨论每一个windows应用程序的结构和基本元素    ·举例说明如何使用mfc开发本地windows应用程序    ·指导读者用c++和c++/cli设计和创建大量的windows应用程序    ·为帮助读者掌握编程技巧,提供了大量可运行的示例和练习 作译者   Ivor Horton是撰著Java、C和C++编程语言图书的杰出作家之一。大家一致认为,他的著作独具风格,无论是编程新手,还是经验丰富的编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事程序设计教学工作已经超过了25年。   苏正泉,1995年毕业于解放军信息工程学院计算机及应用专业,高级工程师。在IT项目管理、软件开发、系统管理和网络管理方面都有非常丰富的实践经验。曾发表过多篇计算机专业论文,并翻译过多部计算机专业技术书籍。   李文娟,中国石油大学(华东)硕士,现供职于国家行政学院,工作后一直从事软件开发和软件项目管理工作,对计算机语言、计算机体系结构、操作系统都非常熟悉,尤其是精通C和C++编程技术. 目录 封面 -19 封底 -18 扉页 -17 版权 -16 前言 -15 目录 -10 第1章 使用Visual C++ 2010编程 1 1.1 .NET Framework 1 1.2 CLR 2 1.3 编写C++应用程序 3 1.4 学习Windows编程 4 1.4.1 学习C++ 4 1.4.2 C++标准 5 1.4.3 属性 5 1.4.4 控制台应用程序 5 1.4.5 Windows编程概念 6 1.5 集成开发环境简介 7 1.5.1 编辑器 8 1.5.2 编译器 8 1.5.3 链接器 8 1.5.4 库 8 1.6 使用IDE 8 1.6.1 工具栏选项 9 1.6.2 可停靠的工具栏 10 1.6.3 文档 11 1.6.4 项目和解决方案 11 1.6.5 设置Visual C++ 2010的选项 23 1.6.6 创建和执行Windows应用程序 23 1.6.7 创建Windows Forms应用程序 26 1.7 小结 27 1.8 本章主要内容 28 第2章 数据、变量和计算 29 2.1 C++程序结构 29 2.1.1 main()函数 36 2.1.2 程序语句 36 2.1.3 空白 38 2.1.4 语句块 38 2.1.5 自动生成的控制台程序 39 2.2 定义变量 40 2.2.1 命名变量 40 2.2.2 声明变量 41 2.2.3 变量的初始值 42 2.3 基本数据类型 42 2.3.1 整型变量 43 2.3.2 字符数据类型 44 2.3.3 整型修饰符 45 2.3.4 布尔类型 46 2.3.5 浮点类型 46 2.3.6 字面值 47 2.3.7 定义数据类型的同义词 48 2.3.8 具有特定值集的变量 49 2.4 基本的输入/输出操作 50 2.4.1 从键盘输入 50 2.4.2 到命令行的输出 50 2.4.3 格式化输出 51 2.4.4 转义序列 52 2.5 C++中的计算 54 2.5.1 赋值语句 54 2.5.2 算术运算 55 2.5.3 计算余数 59 2.5.4 修改变量 60 2.5.5 增量和减量运算符 60 2.5.6 计算的顺序 63 2.6 类型转换和类型强制转换 64 2.6.1 赋值语句中的类型转换 65 2.6.2 显式类型转换 65 2.6.3 老式的类型强制转换 66 2.7 AUTO关键字 66 2.8 查看类型 67 2.9 按位运算符 67 2.9.1 按位AND运算符 68 2.9.2 按位OR运算符 69 2.9.3 按位EOR运算符 71 2.9.4 按位NOT运算符 71 2.9.5 移位运算符 71 2.10 lvalue和rvalue 73 2.11 了解存储时间和作用域 74 2.11.1 自动变量 74 2.11.2 决定变量声明的位置 76 2.11.3 全局变量 77 2.11.4 静态变量 80 2.12 名称空间 80 2.12.1 声明名称空间 81 2.12.2 多个名称空间 82 2.13 C++/CLI编程 84 2.13.1 C++/CLI特有的基本数据类型 84 2.13.2 命令行上的C++/CLI输出 87 2.13.3 C++/CLI特有的功能—— 格式化输出 88 2.13.4 C++/CLI的键盘输入 91 2.13.5 使用safe_cast 92 2.13.6 C++/CLI枚举 92 2.14 查看C++/CLI类型 96 2.15 小结 97 2.16 练习 97 2.17 本章主要内容 98 第3章 判断和循环 101 3.1 比较数据值 101 3.1.1 if语句 102 3.1.2 嵌套的if语句 104 3.1.3 嵌套的if-else语句 107 3.1.4 逻辑运算符和表达式 109 3.1.5 条件运算符 112 3.1.6 switch语句 113 3.1.7 无条件转移 116 3.2 重复执行语句块 117 3.2.1 循环的概念 117 3.2.2 for循环的变体 119 3.2.3 while循环 126 3.2.4 do-while循环 128 3.2.5 嵌套的循环 129 3.3 C++/CLI编程 132 3.4 小结 137 3.5 练习 138 3.6 本章主要内容 138 第4章 数组、字符串和指针 139 4.1 处理多个相同类型的数据值 139 4.1.1 数组 140 4.1.2 声明数组 140 4.1.3 初始化数组 143 4.1.4 字符数组和字符串处理 144 4.1.5 多维数组 147 4.2 间接数据访问 150 4.2.1 指针的概念 150 4.2.2 声明指针 150 4.2.3 使用指针 152 4.2.4 初始化指针 152 4.2.5 sizeof操作符 158 4.2.6 常量指针和指向常量的指针 159 4.2.7 指针和数组 161 4.3 动态内存分配 168 4.3.1 堆的别名—— 空闲存储器 168 4.3.2 new和delete操作符 168 4.3.3 为数组动态分配内存 169 4.3.4 多维数组的动态分配 171 4.4 使用引用 172 4.4.1 引用的概念 172 4.4.2 声明并初始化lvalue引用 172 4.4.3 声明并初始化rvalue引用 173 4.5 字符串的本地C++库函数 174 4.5.1 查找以空字符结尾的字符串的长度 174 4.5.2 连接以空字符结尾的字符串 174 4.5.3 复制以空字符结尾的字符串 176 4.5.4 比较以空字符结尾的字符串 177 4.5.5 搜索以空字符结尾的字符串 177 4.6 C++/CLI编程 179 4.6.1 跟踪句柄 180 4.6.2 CLR数组 181 4.6.3 字符串 195 4.6.4 跟踪引用 203 4.6.5 内部指针 204 4.7 小结 206 4.8 练习 206 4.9 本章主要内容 207 第5章 程序结构(1) 209 5.1 理解函数 209 5.1.1 需要函数的原因 210 5.1.2 函数的结构 210 5.1.3 使用函数 213 5.2 给函数传递实参 216 5.2.1 按值传递机制 216 5.2.2 给函数传递指针实参 217 5.2.3 给函数传递数组 219 5.2.4 给函数传递引用实参 222 5.2.5 使用const修饰符 224 5.2.6 rvalue引用形参 225 5.2.7 main()函数的实参 227 5.2.8 接受数量不定的函数实参 229 5.3 从函数返回值 231 5.3.1 返回指针 231 5.3.2 返回引用 233 5.3.3 函数中的静态变量 236 5.4 递归函数调用 238 5.5 C++/CLI编程 240 5.5.1 接受数量可变实参的函数 241 5.5.2 main( )的实参 242 5.6 小结 243 5.7 练习 243 5.8 本章主要内容 244 第6章 程序结构(2) 245 6.1 函数指针 245 6.1.1 声明函数指针 246 6.1.2 函数指针作为实参 249 6.1.3 函数指针的数组 250 6.2 初始化函数形参 250 6.3 异常 252 6.3.1 抛出异常 253 6.3.2 捕获异常 254 6.3.3 MFC中的异常处理 255 6.4 处理内存分配错误 256 6.5 函数重载 257 6.5.1 函数重载的概念 258 6.5.2 引用类型和重载选择 260 6.5.3 何时重载函数 260 6.6 函数模板 261 6.7 使用decltype操作符 263 6.8 使用函数的示例 265 6.8.1 实现计算器 265 6.8.2 从字符串中删除空格 268 6.8.3 计算表达式的值 268 6.8.4 获得项值 270 6.8.5 分析数 271 6.8.6 整合程序 274 6.8.7 扩展程序 275 6.8.8 提取子字符串 277 6.8.9 运行修改过的程序 279 6.9 C++/CLI编程 279 6.9.1 理解泛型函数 280 6.9.2 CLR版本的计算器程序 285 6.10 小结 290 6.11 练习 291 6.12 本章主要内容 292 第7章 自定义数据类型 293 7.1 C++中的结构 293 7.1.1 结构的概念 294 7.1.2 定义结构 294 7.1.3 初始化结构 294 7.1.4 访问结构的成员 295 7.1.5 伴随结构的智能感知帮助 298 7.1.6 RECT结构 299 7.1.7 使用指针处理结构 300 7.2 数据类型、对象、类和实例 301 7.2.1 类的起源 303 7.2.2 类的操作 303 7.2.3 术语 303 7.3 理解类 304 7.3.1 定义类 304 7.3.2 声明类的对象 305 7.3.3 访问类的数据成员 305 7.3.4 类的成员函数 307 7.3.5 成员函数定义的位置 309 7.3.6 内联函数 309 7.4 类构造函数 310 7.4.1 构造函数的概念 311 7.4.2 默认的构造函数 312 7.4.3 在类定义中指定默认的形参值 314 7.4.4 在构造函数中使用初始化列表 316 7.4.5 声明显式的构造函数 317 7.5 类的私有成员 318 7.5.1 访问私有类成员 320 7.5.2 类的友元函数 321 7.5.3 默认复制构造函数 323 7.6 this指针 325 7.7 类的const对象 327 7.7.1 类的const成员函数 327 7.7.2 类外部的成员函数定义 328 7.8 类对象的数组 329 7.9 类的静态成员 331 7.9.1 类的静态数据成员 331 7.9.2 类的静态函数成员 334 7.10 类对象的指针和引用 334 7.10.1 类对象的指针 334 7.10.2 类对象的引用 337 7.11 C++/CLI编程 338 7.11.1 定义值类类型 339 7.11.2 定义引用类类型 344 7.11.3 定义引用类类型的复制构造函数 346 7.11.4 类属性 346 7.11.5 initonly字段 358 7.11.6 静态构造函数 360 7.12 小结 360 7.13 练习 360 7.14 本章主要内容 361 第8章 深入理解类 363 8.1 类析构函数 363 8.1.1 析构函数的概念 363 8.1.2 默认的析构函数 364 8.1.3 析构函数与动态内存分配 366 8.2 实现复制构造函数 369 8.3 在变量之间共享内存 370 8.3.1 定义联合 371 8.3.2 匿名联合 372 8.3.3 类和结构中的联合 372 8.4 运算符重载 373 8.4.1 实现重载的运算符 373 8.4.2 实现对比较运算符的完全支持 376 8.4.3 重载赋值运算符 379 8.4.4 重载加法运算符 384 8.4.5 重载递增和递减运算符 387 8.4.6 重载函数调用操作符 388 8.5 对象复制问题 389 8.5.1 避免不必要的复制操作 389 8.5.2 应用rvalue引用形参 392 8.5.3 命名的对象是lvalue 394 8.6 类模板 399 8.6.1 定义类模板 400 8.6.2 根据类模板创建对象 402 8.6.3 使用有多个形参的类模板 405 8.6.4 函数对象模板 406 8.7 使用类 407 8.7.1 类接口的概念 407 8.7.2 定义问题 407 8.7.3 实现CBox类 408 8.8 组织程序代码 425 8.9 字符串的本地C++库类 427 8.9.1 创建字符串对象 427 8.9.2 连接字符串 429 8.9.3 访问与修改字符串 432 8.9.4 比较字符串 436 8.9.5 搜索字符串 439 8.10 C++/CLI编程 447 8.10.1 在值类中重载运算符 447 8.10.2 重载递增和递减运算符 452 8.10.3 在引用类中重载运算符 453 8.10.4 实现引用类型的赋值运算符 455 8.11 小结 456 8.12 练习 456 8.13 本章主要内容 457 第9章 类继承和虚函数 459 9.1 面向对象编程的基本思想 459 9.2 类的继承 460 9.2.1 基类的概念 461 9.2.2 基类的派生类 461 9.3 继承机制下的访问控制 464 9.3.1 派生类中构造函数的操作 467 9.3.2 声明类的保护成员 470 9.3.3 继承类成员的访问级别 473 9.4 派生类中的复制构造函数 474 9.5 友元类成员 477 9.5.1 友元类 479 9.5.2 对类友元关系的限制 479 9.6 虚函数 479 9.6.1 虚函数的概念 481 9.6.2 使用指向类对象的指针 483 9.6.3 使用引用处理虚函数 485 9.6.4 纯虚函数 486 9.6.5 抽象类 487 9.6.6 间接基类 489 9.6.7 虚析构函数 491 9.7 类类型之间的强制转换 494 9.8 嵌套类 495 9.9 C++/CLI编程 498 9.9.1 装箱与拆箱 499 9.9.2 C++/CLI类的继承 499 9.9.3 接口类 505 9.9.4 定义接口类 505 9.9.5 类和程序集 509 9.9.6 被指定为new的函数 513 9.9.7 委托和事件 514 9.9.8 引用类的析构函数和终结器 525 9.9.9 泛型类 527 9.10 小结 536 9.11 练习 536 9.12 本章主要内容 539 第10章 标准模板库 541 10.1 标准模板库的定义 541 10.1.1 容器 542 10.1.2 容器适配器 542 10.1.3 迭代器 543 10.1.4 算法 544 10.1.5 STL中的函数对象 545 10.1.6 函数适配器 545 10.2 STL容器范围 545 10.3 序列容器 545 10.3.1 创建矢量容器 546 10.3.2 矢量容器的容量和大小 549 10.3.3 访问矢量中的元素 553 10.3.4 在矢量中插入和删除元素 553 10.3.5 在矢量中存储类对象 555 10.3.6 排序矢量元素 559 10.3.7 排序矢量中的指针 560 10.3.8 双端队列容器 562 10.3.9 使用列表容器 565 10.3.10 使用其他序列容器 574 10.4 关联容器 588 10.4.1 使用映射容器 589 10.4.2 使用多重映射容器 600 10.5 关于迭代器的更多内容 600 10.5.1 使用输入流迭代器 601 10.5.2 使用插入迭代器 604 10.5.3 使用输出流迭代器 605 10.6 关于函数对象的更多内容 607 10.7 关于算法的更多内容 608 10.7.1 fill() 608 10.7.2 replace() 609 10.7.3 find() 609 10.7.4 transform() 610 10.8 lambda表达式 611 10.8.1 capture子句 612 10.8.2 捕获特定的变量 613 10.8.3 模板和lambda表达式 613 10.8.4 包装lambda表达式 617 10.9 C++/CLI程序的STL 618 10.9.1 STL/CLR容器 619 10.9.2 使用序列容器 619 10.9.3 使用关联容器 627 10.10 C++/CLI中的lambda表达式 633 10.11 小结 633 10.12 练习 633 10.13 本章主要内容 634 第11章 调试技术 635 11.1 理解调试 635 11.1.1 程序故障 636 11.1.2 常见故障 637 11.2 基本的调试操作 638 11.2.1 设置断点 639 11.2.2 设置跟踪点 641 11.2.3 启动调试模式 641 11.2.4 修改变量的值 645 11.3 添加调试代码 645 11.3.1 使用断言 645 11.3.2 添加自己的调试代码 647 11.4 调试程序 652 11.4.1 调用栈 652 11.4.2 单步执行到出错位置 653 11.5 测试扩展的类 656 11.6 调试动态内存 659 11.6.1 检查空闲存储器的函数 660 11.6.2 控制空闲存储器的调试操作 661 11.6.3 空闲存储器的调试输出 662 11.7 调试C++/CLI程序 668 11.7.1 使用调试类Debug和跟踪类Trace 668 11.7.2 在Windows Forms应用程序中获得跟踪输出 676 11.8 小结 677 11.9 本章主要内容 677 第12章 Windows编程的概念 679 12.1 Windows编程基础 679 12.1.1 窗口的元素 680 12.1.2 Windows程序与操作系统 681 12.1.3 事件驱动型程序 682 12.1.4 Windows消息 682 12.1.5 Windows API 682 12.1.6 Windows数据类型 683 12.1.7 Windows程序中的符号 684 12.2 Windows程序的结构 685 12.2.1 WinMain()函数 686 12.2.2 消息处理函数 696 12.2.3 简单的Windows程序 700 12.3 Windows程序的组织 701 12.4 MFC 702 12.4.1 MFC表示法 702 12.4.2 MFC程序的组织方式 702 12.5 使用Windows Forms 706 12.6 小结 707 12.7 本章主要内容 707 第13章 多核编程 709 13.1 并行处理基本知识 709 13.2 并行模式库 710 13.3 并行处理算法 710 13.3.1 使用parallel_for算法 710 13.3.2 使用parallel_for_each算法 712 13.3.3 使用parallel_invoke算法 714 13.4 真正的并行问题 715 13.5 临界区 728 13.5.1 使用critical_section对象 728 13.5.2 锁定代码节或解除代码节锁定 729 13.6 combinable类模板 731 13.7 任务和任务组 733 13.8 小结 736 13.9 练习 736 13.10 本章主要内容 736 第14章 使用MFC编写Windows程序 739 14.1 MFC的文档/视图概念 739 14.1.1 文档的概念 739 14.1.2 文档界面 740 14.1.3 视图的概念 740 14.1.4 链接文档和视图 741 14.1.5 应用程序和MFC 742 14.2 创建MFC应用程序 743 14.2.1 创建SDI应用程序 745 14.2.2 MFC Application Wizard的输出 748 14.2.3 创建MDI应用程序 757 14.3 小结 760 14.4 练习 760 14.5 本章主要内容 760 第15章 处理菜单和工具栏 763 15.1 与Windows进行通信 763 15.1.1 了解消息映射 764 15.1.2 消息类别 767 15.1.3 处理程序中的消息 767 15.2 扩展Sketcher程序 768 15.3 菜单的元素 769 15.4 为菜单消息添加处理程序 771 15.4.1 选择处理菜单消息的类 773 15.4.2 创建菜单消息函数 773 15.4.3 编写菜单消息函数的代码 775 15.4.4 添加更新用户界面的消息处理程序 778 15.5 添加工具栏按钮 781 15.5.1 编辑工具栏按钮的属性 782 15.5.2 练习使用工具栏按钮 783 15.5.3 添加工具提示 784 15.6 C++/CLI程序中的菜单和工具栏 785 15.6.1 理解Windows Forms 785 15.6.2 理解Windows Forms应用程序 786 15.6.3 在CLR Sketcher中添加菜单 788 15.6.4 添加菜单项的事件处理程序 790 15.6.5 实现事件处理程序 791 15.6.6 设置菜单项复选 792 15.6.7 添加工具栏 793 15.7 小结 797 15.8 练习 797 15.9 本章主要内容 797 第16章 在窗口中绘图 799 16.1 窗口绘图的基础知识 799 16.1.1 窗口工作区 800 16.1.2 Windows图形设备界面 800 16.2 Visual C++中的绘图机制 802 16.2.1 应用程序中的视图类 802 16.2.2 CDC类 803 16.3 实际绘制图形 811 16.4 对鼠标进行编程 813 16.4.1 鼠标发出的消息 813 16.4.2 鼠标消息处理程序 814 16.4.3 使用鼠标绘图 816 16.5 练习使用Sketcher程序 837 16.5.1 运行示例 838 16.5.2 捕获鼠标消息 838 16.6 在CLR中绘图 840 16.6.1 在窗体上绘图 840 16.6.2 添加鼠标事件处理程序 840 16.6.3 定义C++/CLI元素类 842 16.6.4 实现MouseMove事件处理程序 850 16.6.5 实现MouseUp事件处理程序 851 16.6.6 实现窗体的Paint事件处理程序 851 16.7 小结 852 16.8 练习 852 16.9 本章主要内容 853 第17章 创建文档和改进视图 855 17.1 创建草图文档 855 17.2 改进视图 859 17.2.1 更新多个视图 859 17.2.2 滚动视图 861 17.2.3 使用MM_LOENGLISH映射模式 865 17.3 删除和移动形状 866 17.4 实现上下文菜单 866 17.4.1 关联菜单和类 867 17.4.2 练习弹出菜单 870 17.4.3 突出显示元素 870 17.4.4 处理菜单消息 874 17.5 处理屏蔽的元素 881 17.6 扩展CLR Sketcher 882 17.6.1 坐标系统转换 882 17.6.2 定义草图类 885 17.6.3 在Paint事件处理程序中绘制草图 886 17.6.4 实现元素的突出显示 887 17.6.5 创建上下文菜单 891 17.7 小结 897 17.8 练习 897 17.9 本章主要内容 898 第18章 使用对话框和控件 899 18.1 理解对话框 899 18.2 理解控件 900 18.3 创建对话框资源 900 18.3.1 给对话框添加控件 901 18.3.2 测试对话框 902 18.4 对话框的编程 902 18.4.1 添加对话框类 902 18.4.2 模态和非模态对话框 903 18.4.3 显示对话框 903 18.5 支持对话框控件 906 18.5.1 初始化控件 906 18.5.2 处理单选按钮消息 907 18.6 完成对话框的操作 908 18.6.1 给文档添加线宽 908 18.6.2 给元素添加线宽 909 18.6.3 在视图中创建元素 910 18.6.4 练习使用对话框 910 18.7 使用微调按钮控件 911 18.7.1 添加Scale菜单项和工具栏按钮 911 18.7.2 创建微调按钮 911 18.7.3 生成比例对话框类 913 18.7.4 显示微调按钮 915 18.8 使用缩放比例 916 18.8.1 可缩放的映射模式 916 18.8.2 设置文档的大小 917 18.8.3 设置映射模式 918 18.8.4 同时实现滚动与缩放 919 18.9 使用CTaskDialog类 921 18.9.1 显示任务对话框 921 18.9.2 创建CTaskDialog对象 923 18.10 使用状态栏 925 18.11 使用列表框 929 18.11.1 删除比例对话框 929 18.11.2 创建列表框控件 929 18.12 使用编辑框控件 931 18.12.1 创建编辑框资源 931 18.12.2 创建对话框类 933 18.12.3 添加Text菜单项 934 18.12.4 定义文本元素 935 18.12.5 实现CText类 935 18.13 CLR Sketcher中的对话框和控件 940 18.13.1 添加对话框 940 18.13.2 创建文本元素 946 18.14 小结 953 18.15 练习 953 18.16 本章主要内容 953 第19章 存储和打印文档 955 19.1 了解序列化 955 19.2 序列化文档 956 19.2.1 文档类定义中的序列化 956 19.2.2 文档类实现中的序列化 957 19.2.3 基于CObject的类的功能 959 19.2.4 序列化的工作方式 960 19.2.5 如何实现类的序列化 961 19.3 应用序列化 961 19.3.1 记录文档修改 962 19.3.2 序列化文档 963 19.3.3 序列化元素类 965 19.4 练习序列化 968 19.5 打印文档 969 19.6 实现多页打印 972 19.6.1 获取文档的总尺寸 973 19.6.2 存储打印数据 973 19.6.3 准备打印 974 19.6.4 打印后的清除 976 19.6.5 准备设备上下文 976 19.6.6 打印文档 977 19.6.7 获得文档的打印输出 980 19.7 CLR Sketcher中的序列化和打印 981 19.7.1 了解二进制序列化 981 19.7.2 序列化草图 985 19.7.3 打印草图 995 19.8 小结 996 19.9 练习 996 19.10 本章主要内容 997 第20章 编写自己的DLL 999 20.1 了解DLL 999 20.1.1 DLL的工作方式 1000 20.1.2 DLL的内容 1003 20.1.3 DLL变体 1003 20.2 决定放入DLL的内容 1004 20.3 编写DLL 1005 20.4 小结 1011 20.5 练习 1011 20.6 本章主要内容 1011 前言   欢迎使用本书。通过学习本书,您可以使用Microsoft公司最新的应用程序开发系统,成为优秀的C++程序员。本书旨在讲述C++程序设计语言,然后讲述如何运用C++语言开发自己的Windows应用程序。在此过程中,读者将了解这一最新Visual C++版本所提供的很多激动人心的新功能,包括如何在自己的应用程序中充分利用多核处理器。   0.1 使用C++语言编程   Visual C++ 2010支持两种截然不同但又紧密相关的C++语言,即ISO/IEC标准C++(本书称其为本地C++)和C++/CLI。虽然很多专业开发人员选用本地C++,尤其是当性能是需要考虑的主要因素时,但是C++/CLI和Windows Forms应用程序带来的开发速度和简易性使得C++/CLI也成了基本的语言。因此,本书将深入讨论这两种版本的C++语言。   Visual C++ 2010完全支持原来的ISO/IEC标准C++语言,同时还支持即将发布的ISO/IEC标准C++提供的一些功能强大的新特性。因此,本书不仅涵盖ISO/IEC标准C++的原有功能,同时还会介绍新语言特性。   Visual C++ 2010也支持C++/CLI,它是Microsoft公司作为本地C++的扩展而开发的C++版本。C++/CLI背后的思想是向本地C++添加一些特性,从而能够开发以.NET支持的虚拟机环境为目标的应用程序。这就将C++添加到能使用.NET Framework的其他语言(例如,BASIC和C#)中。C++/CLI语言目前是一个ECMA标准,同时也符合定义.NET虚拟机环境的CLI标准。   Visual C++ 2010的这两种C++版本互为补充,各自完成不同的任务。ISO/IEC C++用于开发在本地计算机上运行的高性能应用程序,而C++/CLI专门为.NET Framework开发应用程序。掌握了使用这两种C++版本开发应用程序的基础知识之后,就能够充分利用Visual C++ 2010。   0.2 开发Windows应用程序   充分理解C++之后,就可以着手开发Windows应用程序。Microsoft基本类(Microsoft Foundation Classes,MFC)封装了Windows API,提供了全面而易于使用的功能,从而能够使用本地C++开发高性能的Windows应用程序。   当编写本地C++程序时,可以从自动生成的代码中获得大量帮助,但仍然需要亲自编写大量C++代码。我们不仅需要对面向对象编程(OOP)技术有扎实的理解,而且需要充分了解Windows编程所涉及的各个方面。本书会介绍所有这些知识点。   C++/CLI虽然针对.NET Framework开发,但同时也是Windows Forms应用程序开发的载体。开发Windows Forms应用程序时,在不用编写一行代码的情况下,即使不能创建应用程序交互所需的用户界面的所有元素,也可以创建其中的很多元素。当然,仍然需要定制Windows Forms应用程序,才能完成相应的任务,但开发时间与使用本地C++创建应用程序相比只占一小部分。当给Windows Forms应用程序添加定制代码时,即使这部分代码只占到代码总量的很小比例,也仍然要求我们深入理解C++/CLI语言,才能做到游刃有余。本书旨在介绍这些知识。   0.3 高级库功能   并行模式库(Parallel Patterns Library,PPL)是Visual C++ 2010增加的一个令人激动的新功能,通过此功能,我们可以轻松编写使用多处理器的程序。在过去,为多处理器编程并非易事,但有了PPL,这就确实变得很容易了。本书将介绍PPL的各种使用方式,从而加快计算密集型应用程序的执行速度。   0.4 本书读者对象   本书针对任何想要学习如何使用Visual C++ 2010编写在Microsoft Windows操作系统下运行的C++应用程序的读者。阅读本书不需要预先具备任何特定编程语言的知识。如果属于下列4种情形之一,您就适合学习本教程:   ·属于编程新手,十分渴望投入编程世界,并最终掌握C++。要取得成功,您至少需要对计算机的工作原理有大体的理解——包括内存的组织方式以及数据和指令的存储方式。   ·具备一些其他语言的编程经验,如BASIC;渴望学习C++,并想提升实际的Microsoft Windows编程技能。   ·有一些使用C语言或C++语言的经验,但使用环境不是Microsoft Windows;希望使用最新的工具和技术,扩展在Windows环境下编程的技能。   ·有一些C++知识,并希望扩展C++技能,成为会使用C++/CLI的编程人员。   0.5 本书主要内容   本书实质上涵盖了两大主题:C++编程语言以及如何使用MFC或.NET Framework编写Windows应用程序。在开发完全成熟的Windows应用程序之前,需要具备相当水平的C++知识,因此,首先学习这本C++教程。 .  本书的第一部分通过可运行于两种C++语言版本上的一个详细的循序渐进式教程,讲授了使用Visual C++ 2010支持的两种C++语言技术编写C++程序的基础知识。您将了解本地ISO/IEC C++语言的语法和用法,并通过一系列范围广泛的可工作示例,获得实际运用它的经验和信心。本书也提供了一些练习,可以检验所学的知识,并且可以下载练习题答案。而C++/CLI作为本地C++的扩展来学习,这仍然是通过一些可运行的示例来说明每一个特性的工作原理。   当然,本语言教程也介绍和说明了C++标准库功能的用法,因为开发程序时极有可能使用它们。随着深入地学习C++语言,您的标准库知识会不断增加。还将学习标准模板库(Standard Template Library,STL)以两种形式——即本地C++版本和C++/CLI版本——提供的强大工具。另外,本书还用一章的篇幅专门讲述新增的并行模式库(PPL)功能,从而能够利用PC的多核处理功能来开发计算密集型应用程序。   对C++的运用有信心之后,就可以继续学习Windows编程了。通过创建超过2000行代码的大型可运行的应用程序,学习如何使用MFC来开发本地Windows应用程序。开发此应用程序贯穿多章内容,使用到了MFC提供的一系列用户界面功能。为学习如何使用C++/CLI编写Windows程序,相应地开发了一个与本地C++应用程序具有相似用户界面特性的Windows Forms应用程序。   0.6 本书结构   本书内容的结构安排如下:   ·第1章介绍使用C++编写本地应用程序和.NET Framework应用程序所需要理解的基本概念,以及在Visual C++ 2010开发环境中体现的主要思想,还叙述了如何使用Visual C++ 2010的功能来创建本书其余部分要学习的各种C++应用程序。   ·第2~9章讲授两种C++语言版本。第2~9章内容的组织方式都相似:各章的前半部分讨论本地C++语言的元素,后半部分讨论如何在C++/CLI中提供相同的功能。   ·第10章介绍如何使用标准模板库(Standard Template Library,STL)。STL是一组功能强大且全面的工具,用来组织和操作本地C++程序中的数据。由于STL是独立于应用程序的,因此可以在上下文中大量应用它。第10章还介绍了Visual C++ 2010新增的STL/CLR。它是C++/CLI应用程序的STL版本。   ·第11章介绍了在C++程序中查找错误的技术。涵盖了调试程序的一般原则,以及Visual C++ 2010提供的基本特性,这些特性可以帮助我们查找代码中的错误。   ·第12章讨论Microsoft Windows应用程序的组织方式,并描述和展示了在所有Windows应用程序中都存在的基本元素。本章解释了以本地C++语言编写的、使用Windows API和MFC的Windows应用程序示例,还给出了一个使用C++/CLI语言编写的Windows Forms应用程序的基础示例。   ·第13章介绍了如何在PC有多核处理器的情况下编写程序以使用多个处理器。通过一些完整的工作示例展示了并行处理的基本技术,这些示例Windows API应用程序是计算密集型程序。   ·第14~19章讲述Windows编程。详细描述了如何使用MFC提供的构建GUI的功能编写本地C++ Windows应用程序以及如何在C++/CLI Windows应用程序中使用.NET Framework。我们将学习如何创建并使用通用控件来构建应用程序的图形用户界面,还将学习如何处理因用户与程序的交互作用而产生的事件。除了学习构建GUI的技术以外,还将从开发该应用程序的过程中学到如何打印文档,以及如何在磁盘上保存应用程序数据。   ·第20章讲述为使用MFC创建自己的库而需要知道的基本知识。我们将了解可以创建的不同种类的库,还将开发能够与前6章开发的应用程序协同工作的示例。   本书各章内容都包括许多工作示例,通过这些示例阐明所讨论的编程技术。每章结束时都总结了该章所讲述的要点,大多数章节都在最后给出了一组练习,您可以应用所学的技术来试着解答这些练习。练习的答案连同书中的所有代码都可以从http://www.wrox.com和http://www.tupwk.com.cn/ downpage下载。关于C++语言教程使用的示例都是使用简单的命令行输入和输出的控制台程序。这种方法使我们能够在不陷入复杂的Windows GUI编程的情况下,学习C++的各种功能。实际上,只有在透彻地理解编程语言之后,才能进行Windows 编程。   如果希望使学习过程尽可能简单,或者如果您是程序设计初学者,那么最初可以只学习本地C++编程语言。讲授C++语言的各章(第2~9章)都是首先讨论本地C++功能的特定方面,然后再讨论C++/CLI在相同的上下文中引入的新功能。以这种方式组织各章内容的原因在于,C++/CLI是作为ISO/IEC标准语言的扩展定义的,对C++/CLI的理解是以对ISO/IEC C++的理解为基础的。因此,您可以只阅读各章中的本地C++部分,而忽略后面的C++/CLI部分。然后可以继续使用本地C++开发Windows应用程序,而免去记住两种语言版本的苦恼。在熟悉了ISO/IEC C++之后,您可以回头重新学习C++/CLI。当然,如果您已经有一些编程经验,也可以逐章进行学习,从而同步增加这两种C++语言版本的知识。   0.7 使用本书的前提   为了充分地使用本书,需要可支持MFC的某个Visual C++ 2010(或Visual Studio 2010)版本。需要注意的是,免费的Visual C++ 2010 Express Edition版本是不行的。因为此版本只提供C++编译器以及对基本Windows API的访问,并没有提供MFC库。因此,Visual C++ 2010(或Visual Studio 2010)的任何付费版本都能够编译并执行本书的所有示例。   0.8 源代码   读者在阅读本书提供的代码时,既可以亲自输入所有代码,也可以使用随书提供的代码文件。本书所有代码均可以从http://www.wrox.com/或www.tupwk.com.cn/downpage网站下载。进入该网站后,读者可以根据本书的书名查找本书(既可以使用搜索框,也可以使用书名列表进行查找),然后单击本书详细内容页面上提供的Download Code链接,就可以下载本书提供的所有代码。   注意:   由于许多书籍名称与本书类似,读者也可以通过ISBN进行查找,本书的ISBN为:978-0-470-50088-0。   另外,读者可以从前面提到的CodePlex网站下载本书或其他Wrox书籍的代码,也可以从Wrox的代码下载页面http://www.wrox.com/dynamic/books/download.aspx和http://www. tupwk.com.cn/downpage下载本书或其他Wrox书籍的代码。   源代码下载成功后,读者用任一解压工具将其解压即可。   0.9 勘误表   为了避免本书文字和代码中存在错误,我们已经竭尽全力。然而,世界上并不存在完美无缺的事物,所以本书可能仍然存在错误。如果读者在我们编写的某本书籍中发现了诸如拼写错误或代码缺陷等问题,那么请告诉我们,我们对此表示感谢。利用勘误表反馈错误信息,可以为其他读者节省大量时间,同时,我们也能够受益于读者的帮助,这样有助于我们编写出质量更高的专业著作。   如果读者需要参考本书的勘误表,请在网站http://www.wrox.com中用搜索框或书名列表查找本书书名。然后,在本书的详细内容页面上,单击Book Errata链接。在随后显示的页面中,读者可以看到与本书相关的所有勘误信息,这些信息是由读者提交、并由Wrox的编辑们加上的。通过访问http://www.wrox.com/misc-pages/booklist.shtml,读者还可以看到Wrox出版的所有书籍的勘误表。   如果读者没有在Book Errata页面上找到自己发现的错误,那么请转到页面http://www. wrox.com/contact/techsupport.shtml,针对您所发现的每一项错误填写表格,并将表格发给我们,我们将对表格内容进行认真审查,如果确实是我们书中的错误,我们将在该书的Book Errata页面上标明该错误信息,并在该书的后续版本中改正。   0.10 关于p2p.wrox.com网站   如果读者希望能够与作者进行讨论,或希望能够参与到读者的共同讨论中,那么请加入p2p.wrox.com论坛。该论坛是一个基于Web的系统,读者可以在论坛发表与Wrox出版的书籍及相关技术的信息,并与其他读者和技术用户进行讨论。论坛提供了订阅功能,可以将与读者所选定主题相关的新帖子定期发送到读者的电子邮箱。Wrox的作者、编辑、业界专家,以及其他读者都会参与论坛中的讨论。   读者可以在http://p2p.wrox.com参与多个论坛的讨论,这些论坛不仅能够帮助读者更好地理解本书,还有助于读者更好地开发应用程序。如果读者希望加入论坛,那么请按照以下步骤执行:   (1) 进入http://p2p.wrox.com页面,单击Register链接。   (2) 阅读使用条款,然后单击Agree按钮。   (3) 填写必要的信息及可选信息,然后单击Submit按钮。   (4) 随后读者会收到一封电子邮件,邮件中说明了如何验证账户并完成整个加入过程。   读者无须加入P2P论坛即可阅读论坛消息,但如果需要发表主题或发表回复,那么必须加入论坛。   成功加入论坛后,读者就可以发表新主题了。此时,读者还可以回复其他用户发表的主题。读者在任何时间都可以阅读论坛信息,如果需要论坛将新的信息发送到自己的电子邮箱,那么可以单击论坛列表中论坛名称旁的Subscribe to this Forum图标完成这项功能设置。   如果读者需要获得更多与Wrox P2P相关的信息,请阅读P2P FAQs,这样可以获得大量与P2P和Wrox出版的书籍相关的具体信息。阅读FAQs时,请单击P2P页面上的FAQs链接。   
书名: ASP 3高级编程 英文原书名: Professional Active Server Pages 3.0 作者: Richard Anderson Chris Blexrud 译者: 刘福太 张立民 金慧琴 梁发麦 书号: 7-111-07678-8 页码: 925 定价: ¥89.00 会员价: ¥80.10 币值: 801 出版社: 机械工业出版社 出版日期: 2000-10-30 包含在Windows 2000中的Active Server Pages 3.0 (ASP 3.0)是Microsoft公司推出的又一个支持Internet的功能强大的网页制作软件包,除了继续保持其适应于各种浏览器的基本特征外,与ASP 2.0相比,功能更加强大,目前已成为开发Internet应用程序的理想选择。本书第1~7章介绍了ASP的基础知识、ASP 3.0的变化、ASP的对象模型、使用ASP脚本和外部组件的所要求的基本概念。第8~12章介绍了通用数据的访问和连接问题,包括ADO、UDA和XML。第13~18章介绍了使用ASP建立组件的问题,以及COM和COM+如何改变组件的环境。第19~23章是关于ASP与BackOffice类应用软件的结合问题,如Microsoft Message Queue Server、Collaborative Data Objects、Microsoft Exchange和Active Directory等等。第24~27章是在企业环境中使用ASP的安全性、性能和可扩展性等问题。第28章和附录提供了一个XML驱动的在线报纸示例和大量以表格形式给出的相关资料。本书不仅为Internet开发人员提供了详实的开发编程指导,也是致力于Internet网络应用与开发的广大科技人员和大专院校相关专业师生的一本重要的自学、教学参考书。 译者序 前言 第1章 ASP基础 1 1.1 ASP的起源 1 1.1.1 HTML的起源 2 1.1.2 动态页面的起源 2 1.2 ASP如何与IIS连接 5 1.2.1 关于应用程序的映射 5 1.2.2 处理一个ASP文件 7 1.3 相关设置问题和管理 12 1.3.1 IIS的安装 12 1.3.2 IIS管理工具 15 1.3.3 常见的管理任务 18 1.4 ASP 3.0对象模型概要 22 1.4.1 对象环境概念 22 1.4.2 ASP内置的对象 23 1.5 ASP 3.0中的新特性 24 1.5.1 ASP 3.0新特性概要 24 1.5.2 对ASP 2.0的改进 26 1.5.3 VBScript 5.0中的新特性 28 1.5.4 JScript 5.0中的新特性 30 1.5.5 其他的新特性 31 1.6 小结 32 第2章 请求和响应的处理 33 2.1 客户端和服务器的交流 33 2.2 Request和Response对象 35 2.2.1 Request对象成员的概述 35 2.2.2 Response对象成员概述 36 2.3 使用Form和QueryString集合 38 2.3.1 访问ASP集合的一般技术 38 2.3.2 访问和更新Cookies集合 44 2.3.3 Form和QueryString的差异 46 2.3.4 查看Request和Response对象内容 47 2.3.5 ASP中cookie的使用 52 2.4 使用ServerVariables集合 53 2.4.1 “自引用”页面 54 2.4.2 检测浏览器的版本 55 2.4.3 检测浏览器的语言 56 2.4.4 其他有用的ServerVariables集合的值 57 2.5 其他Request和Response技巧 57 2.5.1 连接、缓冲和页面重定向的管理 58 2.5.2 操作HTTP报头 60 2.5.3 使用客户证书 65 2.5.4 读写二进制数据 67 2.5.5 创建定制的日志消息 67 2.6 小结 69 第3章 ASP应用程序与会话 70 3.1 Web上的状态管理 70 3.1.1 状态的准确定义 70 3.1.2 状态的重要性 71 3.1.3 在Web上创建状态 71 3.2 Web应用程序的定义 73 3.2.1 ASP应用程序的定义 73 3.2.2 ASP会话的定义 81 3.3 ASP的Application对象和Session对象 83 3.3.1 ASP的Application对象成员概述 84 3.3.2 ASP的Session对象成员概述 85 3.3.3 使用Application和Session的事件 86 3.3.4 活动中的ASP Application对象 89 3.3.5 活动中的ASP Session对象 93 3.4 小结 96 第4章 服务器进程和ASP Server对象 98 4.1 动态页中服务器端的处理 98 4.2 服务器端的包含指令 100 4.2.1 不可思议的ASP #include指令 100 4.2.2 服务器端包含指令概要 102 4.2.3 服务器端包含指令的例子 104 4.3 ASP Server对象 109 4.3.1 ASP Server对象成员概述 109 4.3.2 创建其他对象的实例 110 4.3.3 执行其他的网页 114 4.3.4 Server对象的错误处理 118 4.3.5 获取Server对象的路径信息 125 4.3.6 使用Server对象格式化数据 127 4.4 小结 132 第5章 脚本运行期库对象 134 5.1 脚本对象的定义 134 5.1.1 不同类型的对象和组件 134 5.1.2 VBScript和JScript脚本对象 135 5.2 创建对象和组件实例 136 5.2.1 使用Server.CreateObject方法 136 5.2.2 使用元素 136 5.2.3 Server.CreateObject与的 区别 138 5.2.4 组件线程模型 138 5.2.5 引用对象类型库 139 5.2.6 在客户端上创建对象实例 140 5.3 Scripting.Dictionary对象 141 5.3.1 创建和使用Dictionary对象 141 5.3.2 Dictionary对象示例 143 5.4 Scripting.FileSystemObject对象 148 5.4.1 FileSystemObject对象成员概要 149 5.4.2 使用驱动器 151 5.5 Scripting.TextStream对象 161 5.5.1 创建TextStream对象的方法 161 5.5.2 TextStream对象成员概要 163 5.5.3 TextStream对象举例 165 5.6 小结 168 第6章 活动服务器组件 169 6.1 脚本对象与服务器组件的比较 169 6.2 ASP/IIS可安装组件 171 6.2.1 使用示例页面 172 6.2.2 Content Linking组件 173 6.2.3 Ad Rotator组件 177 6.2.4 Counters组件 182 6.2.5 Browser Capabilities组件 184 6.2.6 Content Rotator组件 188 6.2.7 Page Counter组件 190 6.2.8 Permission Checker组件 191 6.2.9 MyInfo 组件 194 6.2.10 Tools组件 195 6.2.11 Logging Utility组件 200 6.3 第三方服务器组件 204 6.3.1 BrowserHawk组件 204 6.3.2 SA-FileUp组件 206 6.3.3 RegEx注册表访问组件 207 6.4 小结 209 第7章 调试和错误处理 210 7.1 错误的种类 211 7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 7.2.2 脚本运行期错误 220 7.2.3 ASP和SSI的运行期错误 221 7.2.4 客户端脚本错误 222 7.3 防止错误 224 7.4 处理错误 229 7.4.1 ASP缺省错误处理器 229 7.4.2 VBScript错误处理 230 7.4.3 JScript错误处理 232 7.4.4 使用IIS错误页面 232 7.5 程序调试—发现及处理错误 238 7.5.1 常规调试技术 238 7.5.2 Microsoft Script Debugger 239 7.5.3 获得ASP的帮助和支持 242 7.6 小结 243 第8章 ADO基础 244 8.1 ADO的定义 244 8.1.1 OLE DB和ADO的体系结构 245 8.1.2 消费者与提供者 246 8.1.3 提供者和驱动程序 247 8.2 ADO 2.5对象模型 248 8.2.1 Connection对象 248 8.2.2 Command对象 249 8.2.3 Recordset对象 249 8.2.4 Record对象 249 8.2.5 Stream对象 250 8.2.6 集合 250 8.2.7 ADO常数 252 8.3 连接到数据存储 252 8.3.1 连接字符串 253 8.3.2 使用包含文件 256 8.3.3 使用连接状态 256 8.3.4 连接语法 257 8.3.5 连接的例子 257 8.3.6 连接缓冲池 257 8.4 记录集 258 8.4.1 光标 258 8.4.2 锁定 260 8.4.3 创建记录集 261 8.4.4 过滤记录集 265 8.4.5 查找记录 266 8.4.6 修改记录 267 8.5 管理错误 269 8.5.1 Errors集合 269 8.5.2 ASP页面中的ADO错误 270 8.6 小结 272 第9章 连接、命令和过程 273 9.1 Connection对象 273 9.1.1 返回一个记录集 273 9.1.2 操作命令 274 9.2 Command对象 274 9.2.1 返回记录集 274 9.2.2 操作命令 275 9.2.3 存储过程 276 9.3 优化 289 9.3.1 常用的ADO技巧 289 9.3.2 对象变量 289 9.3.3 高速缓存大小 290 9.3.4 数据库设计 290 9.3.5 数据高速缓存 291 9.4 数据整形 293 9.4.1 使用数据整形 294 9.4.2 性能 297 9.5 小结 298 第10章 ASP与客户端数据 299 10.1 断开连接的记录集 299 10.2 远程数据服务 300 10.2.1 RDS服务器组件 300 10.2.2 RDS客户组件 301 10.2.3 支持RDS的浏览器 301 10.2.4 数据源对象 301 10.2.5 数据绑定 308 10.2.6 更新数据 316 10.3 在服务器和客户之间传输数据 319 10.3.1 基于服务器的组件 319 10.3.2 DataSpace对象 320 10.3.3 使用服务器端组件的优点 322 10.3.4 注册服务器端组件 322 10.3.5 自定义处理器 323 10.4 记录集分页 326 10.4.1 利用ASP页面分页记录集 327 10.4.2 利用ADO分页 330 10.4.3 利用SQL Server完成记录集分页 333 10.4.4 数据分页小结 336 10.5 使用数据库中的图像 337 10.6 小结 338 第11章 使用XML数据 339 11.1 XML的定义 339 11.1.1 XML和HTML的差别 340 11.1.2 标记和元素 343 11.1.3 模式和文档类型定义 346 11.1.4 名称空间 347 11.1.5 文档对象模型 348 11.2 ADO和IE5中的XML 354 11.2.1 存储为XML形式的ADO记录集 354 11.2.2 ADO记录集名称空间 355 11.2.3 ADO记录集模式 355 11.2.4 IE数据岛和绑定 358 11.2.5 以XML数据格式保存记录集 361 11.2.6 打开记录集 365 11.3 用XSL来设计XML 367 11.4 相关的领域 371 11.5 用于SQL Server的XML技术预览 372 11.6 小结 373 第12章 通用数据访问 375 12.1 UDA的构想 375 12.2 OLE DB提供者 376 12.2.1 Indexing Service 376 12.2.2 活动目录 383 12.2.3 Exchange Server 386 12.2.4 定制的提供者 386 12.3 半结构化的数据 389 12.3.1 Record对象 390 12.3.2 Internet 发布 390 12.3.3 WebDAV 401 12.4 企业数据 401 12.4.1 Access和SQL Server二者取一 402 12.4.2 SNA Server和传统数据访问 404 12.5 企业中的ASP 405 12.6 小结 407 第13章 组件和网络应用程序结构 408 13.1 分布式应用程序的结构 408 13.1.1 分层应用程序 408 13.1.2 Windows DNA 410 13.1.3 Windows DNA服务 411 13.1.4 网络结构 413 13.2 组件 415 13.2.1 组件定义 415 13.2.2 COM和COM+ 415 13.2.3 组件服务 416 13.2.4 以数据为中心的组件 417 13.2.5 业务组件 417 13.2.6 用户界面组件 418 13.3 组件应用程序设计 418 13.3.1 转换到组件 419 13.3.2 应用程序设计 419 13.3.3 设计网络组件 420 13.3.4 组件设计 422 13.3.5 组件集成 423 13.3.6 建立组件 424 13.4 应用程序设计范例的研究 425 13.4.1 明确问题 425 13.4.2 应用程序的设计 426 13.4.3 设计权衡 430 13.4.4 设计小结 431 13.5 小结 432 第14章 COM、COM+和ASP 433 14.1 COM的内容 433 14.1.1 COM无处不在 434 14.1.2 COM+的三个方面 434 14.1.3 COM开发工具 436 14.2 接口 437 14.2.1 组件 438 14.2.2 缺省接口 438 14.2.3 GUID—实体的确定名称 439 14.2.4 接口的详细内容 439 14.2.5 IUnknown接口 442 14.2.6 使用IDispatch—后期绑定 442 14.2.7 组件信息的中央存储库 444 14.3 COM+运行期的变化 446 14.3.1 配置的和非配置的组件 447 14.3.2 COM+类别 447 14.4 创建一个ASP COM组件 447 14.4.1 组件的接口 449 14.4.2 创建组件 449 14.5 小结 457 第15章 COM+应用程序 458 15.1 微软组件服务(COM+) 458 15.1.1 拦截原理 459 15.1.2 COM+结构 461 15.1.3 组件/对象的生存期和状态 464 15.2 单元和线程模型 467 15.2.1 线程 467 15.2.2 单元 468 15.2.3 线程模型的属性 470 15.2.4 线程模型和范围 472 15.3 COM+应用程序 476 15.3.1 ObjectContext接口 476 15.3.2 Visual Basic COM+组件 479 15.4 组件服务 487 15.5 组件的调试 494 15.6 小结 496 第16章 ASP脚本组件 497 16.1 使用WSC的环境 497 16.2 一个Windows脚本组件 498 16.2.1 发展历史 498 16.2.2 HelloWorld WSC 499 16.3 WSC的结构 499 16.3.1 描述层 500 16.3.2 脚本层 503 16.3.3 运行期层 504 16.4 可用的接口 504 16.5 编写一个ASP脚本组件 505 16.5.1 AspTable组件 506 16.5.2 使用AspTable对象 511 16.6 ASP脚本组件的特点 513 16.6.1 选择正确的工具 513 16.6.2 脚本组件与VBScript类的比较 513 16.7 小结 514 第17章 用C++建立ASP组件 515 17.1 C++语言 515 17.1.1 C++简史 515 17.1.2 使用C++的原因 516 17.1.3 不使用C++的原因 517 17.1.4 把ASP技巧转到C++上 517 17.2 VC++库 518 17.2.1 微软基础类库 518 17.2.2 活动模板库 519 17.2.3 标准模板库 519 17.3 建立一个C++服务器组件 521 17.3.1 问题 522 17.3.2 设计 522 17.3.3 实现 522 17.3.4 测试 531 17.3.5 错误处理 533 17.3.6 调试 535 17.4 小结 537 第18章 对C++组件的进一步讨论 538 18.1 与ASP进行接口 538 18.2 与COM+进行接口 543 18.2.1 IObjectContext的事务处理 546 18.2.2 IObjectControl的对象缓冲 547 18.3 数据访问 547 18.3.1 通过C++使用ADO 548 18.3.2 OLE DB消费者模板 553 18.3.3 使用ADO,还是使用OLE DB消费者 模板 557 18.4 小结 557 第19章 ASP和事务性Web应用程序 558 19.1 事务处理的定义 558 19.1.1 保持应用程序的完整性 558 19.1.2 ACID属性 559 19.2 分布式事务 560 19.3 事务性COM+应用程序 562 19.3.1 Transaction Support属性 562 19.3.2 活动与同步 564 19.3.3 事务的生存期 567 19.3.4 事务访问自定义资源 573 19.4 COM+事务和IIS 574 19.4.1 事务性ASP 574 19.4.2 事务性ASP中的ObjectContext 对象 575 19.4.3 事务事件 576 19.5 用ASP和COM+进行联机订购 577 19.5.1 业务需要 577 19.5.2 设计 577 19.5.3 实现 578 19.5.4 程序验证 585 19.6 小结 586 第20章 ASP和消息队列服务器 587 20.1 消息排队的定义 587 20.1.1 MSMQ的定义 588 20.1.2 使用MSMQ和ASP的原因 589 20.2 MSMQ结构 591 20.2.1 服务器类型 591 20.2.2 客户类型 592 20.2.3 站点布局图 593 20.2.4 投递选项 593 20.3 管理MSMQ 594 20.3.1 增加队列 594 20.3.2 消息队列的属性 596 20.3.3 消息属性 597 20.4 MSMQ对象模型 599 20.4.1 MSMQApplication对象 600 20.4.2 MSMQQuery对象 600 20.4.3 MSMQQueueInfos集合 601 20.4.4 MSMQQueueInfo对象 601 20.4.5 MSMQQueue对象 602 20.4.6 MSMQMessage对象 603 20.4.7 MSMQEvent对象 605 20.4.8 MSMQTransaction对象 605 20.4.9 MSMQTransactionDispenser对象 605 20.4.10 MSMQCoordinatedTransaction Dispenser对象 606 20.4.11 访问MSMQ的其他方式 606 20.5 用于MSMQ的MS DTC事务 606 20.6 高级MSMQ消息 606 20.7 COM+队列化组件 609 20.8 扩展联机订货的示例 610 20.8.1 在组件中添加MSMQ 610 20.8.2 处理队列化订单 612 20.9 小结 614 第21章 ADSI和AD介绍 615 21.1 ADSI的用途 615 21.2 必需的软件 616 21.3 AD的内部结构 617 21.3.1 目录里的对象和属性 617 21.3.2 对象的类 618 21.3.3 容器和叶 619 21.3.4 模式 619 21.3.5 继承 620 21.4 目录的特征 622 21.4.1 优化查找 622 21.4.2 查找功能 622 21.4.3 开放性 622 21.4.4 事务处理 622 21.4.5 复制 623 21.5 常见目录 623 21.5.1 Netscape目录服务器 623 21.5.2 IIS元数据库 623 21.5.3 Exchange Server目录和站点服务器 成员目录 623 21.5.4 Netware目录服务 623 21.5.5 WinNT 623 21.6 ADSI的适用范围 624 21.7 LDAP的适用范围 625 21.8 绑定到一个ADSI对象 626 21.8.1 ADSI对象和Directory对象 626 21.8.2 查看ADSI对象的属性 627 21.9 浏览目录:枚举容器的所有子对象 628 21.10 使用模式定义的属性 631 21.11 Get和GetEx 634 21.12 PropertyBrowseEx示例 634 21.13 AD与WinNT提供者比较 636 21.14 属性缓存 638 21.15 设置属性的值 639 21.16 目录的验证 639 21.17 查找 641 21.17.1 用以查找ADSI目录的命令字符串 644 21.17.2 查找过滤器 645 21.18 小结 646 第22章 ASP和用于NT服务器的CDO 647 22.1 CDO是什么 647 22.2 使用CDO的原因 647 22.2.1 NT服务器下的CDO 648 22.2.2 CDO与CDONTS的比较 648 22.2.3 CDO for Windows 2000 649 22.3 CDONTS库 649 22.3.1 引用类型库 650 22.3.2 NewMail对象 651 22.3.3 其他的CDONTS对象 658 22.3.4 设置SMTP Service 666 22.3.5 SMTP Service配置 667 22.4 在ASP应用程序中使用CDONTS 670 22.4.1 简单邮箱应用程序 671 22.4.2 Inbox应用程序 676 22.5 小结 683 第23章 ASP、CDO与Exchange Server 684 23.1 CDO库 684 23.1.1 通用/共享对象 684 23.1.2 Session对象 695 23.1.3 文件夹 697 23.1.4 地址列表 698 23.1.5 信息存储 699 23.1.6 消息 699 23.1.7 通用属性 704 23.2 邮件客户端应用程序 705 23.2.1 概述 705 23.2.2 服务器配置 705 23.2.3 类型库 707 23.2.4 Login.asp 707 23.2.5 FrameSet.asp 708 23.2.6 FolderList.asp 709 23.2.7 MessageList.asp 712 23.2.8 ViewMessage.asp 715 23.2.9 SendMessage.asp 719 23.2.10 SendMail.asp 722 23.2.11 Logout.asp 725 23.3 小结 725 第24章 服务器防护 726 24.1 安全的定义 726 24.1.1 Internet上的安全问题 726 24.1.2 安全策略 728 24.2 Windows 2000的防护 730 24.2.1 磁盘格式 730 24.2.2 Window 2000安全检查列表 730 24.2.3 防火墙和代理服务器 737 24.3 IIS 5.0的防护 739 24.3.1 IIS的安全配置 739 24.3.2 验证方法 742 24.4 SQL Server 7.0和ODBC的安全 744 24.4.1 保护sa帐号 744 24.4.2 为数据库访问建立替代帐号 744 24.5 建立自己的ASP安全系统 746 24.6 小结 755 第25章 证书的使用 756 25.1 安全性、一致性和可靠性 756 25.2 证书与证书机构 759 25.3 从证书机构获取证书 762 25.4 使用证书 768 25.4.1 使用服务器证书 768 25.4.2 使用个人证书 768 25.4.3 使用软件发行者证书 769 25.4.4 客户证书映射 769 25.4.5 证书的生存期 772 25.5 管理证书 772 25.5.1 证书存储 772 25.5.2 IIS证书管理 774 25.5.3 IE证书管理 775 25.5.4 Outlook Express证书管理 776 25.6 证书与ASP 776 25.7 成为自己的证书机构 777 25.7.1 Certificate Services 778 25.7.2 建立证书机构 779 25.7.3 管理证书机构 779 25.7.4 与证书机构的交互 780 25.8 小结 781 第26章 优化ASP的性能 782 26.1 衡量工作性能的标准 782 26.1.1 吞吐量 782 26.1.2 响应时间 783 26.1.3 衡量性能的其他指标 784 26.2 改善服务器的硬件性能 786 26.2.1 内存 786 26.2.2 硬盘 787 26.2.3 网络带宽 787 26.2.4 CPU 787 26.2.5 更多的服务器 787 26.3 性能的调整 787 26.3.1 解决性能问题 787 26.3.2 强度工具 788 26.3.3 脚本优化 789 26.3.4 会话和应用程序状态 789 26.3.5 安全套接字层 793 26.3.6 进程隔离 793 26.3.7 缓存技术和字典 794 26.3.8 数据库性能 795 26.3.9 真正充足的时间:MSMQ 796 26.3.10 脚本与组件的比较 796 26.3.11 多处理器的可扩展性 798 26.3.12 线程闸门 800 26.3.13 设置元数据库 801 26.3.14 性能计数器 802 26.4 各种小技巧 805 26.4.1 Stm的重命名技巧 805 26.4.2 避免嵌套的包含 806 26.4.3 不使用非脚本映射的文件扩展名 806 26.4.4 关闭脚本调试器 806 26.4.5 最小化脚本块转换 806 26.4.6 不要混用脚本引擎 807 26.4.7 在“费时”操作前使用Response.Is Client Connected 807 26.4.8 使用标记 808 26.4.9 不使用OnStartPage和OnEndPage 808 26.4.10 发挥客户端的作用 808 26.5 小结 808 第27章 建立多服务器网站 810 27.1 多服务器网站 810 27.1.1 Web阵的不足 811 27.1.2 Web阵基础 812 27.2 负载平衡模式 813 27.2.1 DNS循环复用法 813 27.2.2 硬件负载平衡 814 27.2.3 TCP/IP Network Load Balancing 817 27.2.4 复合方式 819 27.2.5 High Availability Clustering Service 820 27.2.6 COM+Dynamic Load Balancing 822 27.3 状态管理 824 27.3.1 不管理状态 824 27.3.2 客户端存储 824 27.3.3 亲和性 824 27.3.4 在一个中心服务器上存储状态 826 27.4 安全 826 27.5 小结 827 第28章 XML驱动的报纸实例 829 28.1 报纸的剖析 829 28.1.1 作者写稿 831 28.1.2 编辑修改 832 28.1.3 读者阅读 834 28.1.4 结构要求 835 28.2 网站的大脑:settings.xml 835 28.2.1 元素 836 28.2.2 元素 836 28.2.3 元素 836 28.2.4 准备global.asa 837 28.2.5 插入导航 838 28.2.6 元素 840 28.3 网站的躯干:headlines.asp 841 28.3.1 ShowHeadlines过程 842 28.3.2 ShowBlurbs过程 843 28.3.3 ShowBriefs过程 844 28.3.4 ShowStory过程 846 28.3.5 使用ShowStory过程 849 28.3.6 主页 852 28.4 管理工具 854 28.4.1 setting_stories.asp 854 28.4.2 setting_glossary.asp 858 28.4.3 关于admin文件夹的其他内容 861 28.5 系统集成 861 28.6 小结 864 附录A ASP 3.0的对象模型 865 附录B 脚本运行期库对象 871 附录C 微软服务器组件 877 附录D 错误代码 881 附录E ADO 2.5对象模型 893 附录F ADO 2.5常量 902 附录G 有用的资料 920 附录H p2p.wrox.com 926
书名: ASP 3高级编程 英文原书名: Professional Active Server Pages 3.0 作者: Richard Anderson Chris Blexrud 译者: 刘福太 张立民 金慧琴 梁发麦 书号: 7-111-07678-8 页码: 925 定价: ¥89.00 会员价: ¥80.10 币值: 801 出版社: 机械工业出版社 出版日期: 2000-10-30 包含在Windows 2000中的Active Server Pages 3.0 (ASP 3.0)是Microsoft公司推出的又一个支持Internet的功能强大的网页制作软件包,除了继续保持其适应于各种浏览器的基本特征外,与ASP 2.0相比,功能更加强大,目前已成为开发Internet应用程序的理想选择。本书第1~7章介绍了ASP的基础知识、ASP 3.0的变化、ASP的对象模型、使用ASP脚本和外部组件的所要求的基本概念。第8~12章介绍了通用数据的访问和连接问题,包括ADO、UDA和XML。第13~18章介绍了使用ASP建立组件的问题,以及COM和COM+如何改变组件的环境。第19~23章是关于ASP与BackOffice类应用软件的结合问题,如Microsoft Message Queue Server、Collaborative Data Objects、Microsoft Exchange和Active Directory等等。第24~27章是在企业环境中使用ASP的安全性、性能和可扩展性等问题。第28章和附录提供了一个XML驱动的在线报纸示例和大量以表格形式给出的相关资料。本书不仅为Internet开发人员提供了详实的开发编程指导,也是致力于Internet网络应用与开发的广大科技人员和大专院校相关专业师生的一本重要的自学、教学参考书。 译者序 前言 第1章 ASP基础 1 1.1 ASP的起源 1 1.1.1 HTML的起源 2 1.1.2 动态页面的起源 2 1.2 ASP如何与IIS连接 5 1.2.1 关于应用程序的映射 5 1.2.2 处理一个ASP文件 7 1.3 相关设置问题和管理 12 1.3.1 IIS的安装 12 1.3.2 IIS管理工具 15 1.3.3 常见的管理任务 18 1.4 ASP 3.0对象模型概要 22 1.4.1 对象环境概念 22 1.4.2 ASP内置的对象 23 1.5 ASP 3.0中的新特性 24 1.5.1 ASP 3.0新特性概要 24 1.5.2 对ASP 2.0的改进 26 1.5.3 VBScript 5.0中的新特性 28 1.5.4 JScript 5.0中的新特性 30 1.5.5 其他的新特性 31 1.6 小结 32 第2章 请求和响应的处理 33 2.1 客户端和服务器的交流 33 2.2 Request和Response对象 35 2.2.1 Request对象成员的概述 35 2.2.2 Response对象成员概述 36 2.3 使用Form和QueryString集合 38 2.3.1 访问ASP集合的一般技术 38 2.3.2 访问和更新Cookies集合 44 2.3.3 Form和QueryString的差异 46 2.3.4 查看Request和Response对象内容 47 2.3.5 ASP中cookie的使用 52 2.4 使用ServerVariables集合 53 2.4.1 “自引用”页面 54 2.4.2 检测浏览器的版本 55 2.4.3 检测浏览器的语言 56 2.4.4 其他有用的ServerVariables集合的值 57 2.5 其他Request和Response技巧 57 2.5.1 连接、缓冲和页面重定向的管理 58 2.5.2 操作HTTP报头 60 2.5.3 使用客户证书 65 2.5.4 读写二进制数据 67 2.5.5 创建定制的日志消息 67 2.6 小结 69 第3章 ASP应用程序与会话 70 3.1 Web上的状态管理 70 3.1.1 状态的准确定义 70 3.1.2 状态的重要性 71 3.1.3 在Web上创建状态 71 3.2 Web应用程序的定义 73 3.2.1 ASP应用程序的定义 73 3.2.2 ASP会话的定义 81 3.3 ASP的Application对象和Session对象 83 3.3.1 ASP的Application对象成员概述 84 3.3.2 ASP的Session对象成员概述 85 3.3.3 使用Application和Session的事件 86 3.3.4 活动中的ASP Application对象 89 3.3.5 活动中的ASP Session对象 93 3.4 小结 96 第4章 服务器进程和ASP Server对象 98 4.1 动态页中服务器端的处理 98 4.2 服务器端的包含指令 100 4.2.1 不可思议的ASP #include指令 100 4.2.2 服务器端包含指令概要 102 4.2.3 服务器端包含指令的例子 104 4.3 ASP Server对象 109 4.3.1 ASP Server对象成员概述 109 4.3.2 创建其他对象的实例 110 4.3.3 执行其他的网页 114 4.3.4 Server对象的错误处理 118 4.3.5 获取Server对象的路径信息 125 4.3.6 使用Server对象格式化数据 127 4.4 小结 132 第5章 脚本运行期库对象 134 5.1 脚本对象的定义 134 5.1.1 不同类型的对象和组件 134 5.1.2 VBScript和JScript脚本对象 135 5.2 创建对象和组件实例 136 5.2.1 使用Server.CreateObject方法 136 5.2.2 使用元素 136 5.2.3 Server.CreateObject与的 区别 138 5.2.4 组件线程模型 138 5.2.5 引用对象类型库 139 5.2.6 在客户端上创建对象实例 140 5.3 Scripting.Dictionary对象 141 5.3.1 创建和使用Dictionary对象 141 5.3.2 Dictionary对象示例 143 5.4 Scripting.FileSystemObject对象 148 5.4.1 FileSystemObject对象成员概要 149 5.4.2 使用驱动器 151 5.5 Scripting.TextStream对象 161 5.5.1 创建TextStream对象的方法 161 5.5.2 TextStream对象成员概要 163 5.5.3 TextStream对象举例 165 5.6 小结 168 第6章 活动服务器组件 169 6.1 脚本对象与服务器组件的比较 169 6.2 ASP/IIS可安装组件 171 6.2.1 使用示例页面 172 6.2.2 Content Linking组件 173 6.2.3 Ad Rotator组件 177 6.2.4 Counters组件 182 6.2.5 Browser Capabilities组件 184 6.2.6 Content Rotator组件 188 6.2.7 Page Counter组件 190 6.2.8 Permission Checker组件 191 6.2.9 MyInfo 组件 194 6.2.10 Tools组件 195 6.2.11 Logging Utility组件 200 6.3 第三方服务器组件 204 6.3.1 BrowserHawk组件 204 6.3.2 SA-FileUp组件 206 6.3.3 RegEx注册表访问组件 207 6.4 小结 209 第7章 调试和错误处理 210 7.1 错误的种类 211 7.1.1 语法或“编译”错误 211 7.1.2 语义或“运行期”错误 215 7.2 各种运行期错误 218 7.2.1 逻辑错误 219 7.2.2 脚本运行期错误 220 7.2.3 ASP和SSI的运行期错误 221 7.2.4 客户端脚本错误 222 7.3 防止错误 224 7.4 处理错误 229 7.4.1 ASP缺省错误处理器 229 7.4.2 VBScript错误处理 230 7.4.3 JScript错误处理 232 7.4.4 使用IIS错误页面 232 7.5 程序调试—发现及处理错误 238 7.5.1 常规调试技术 238 7.5.2 Microsoft Script Debugger 239 7.5.3 获得ASP的帮助和支持 242 7.6 小结 243 第8章 ADO基础 244 8.1 ADO的定义 244 8.1.1 OLE DB和ADO的体系结构 245 8.1.2 消费者与提供者 246 8.1.3 提供者和驱动程序 247 8.2 ADO 2.5对象模型 248 8.2.1 Connection对象 248 8.2.2 Command对象 249 8.2.3 Recordset对象 249 8.2.4 Record对象 249 8.2.5 Stream对象 250 8.2.6 集合 250 8.2.7 ADO常数 252 8.3 连接到数据存储 252 8.3.1 连接字符串 253 8.3.2 使用包含文件 256 8.3.3 使用连接状态 256 8.3.4 连接语法 257 8.3.5 连接的例子 257 8.3.6 连接缓冲池 257 8.4 记录集 258 8.4.1 光标 258 8.4.2 锁定 260 8.4.3 创建记录集 261 8.4.4 过滤记录集 265 8.4.5 查找记录 266 8.4.6 修改记录 267 8.5 管理错误 269 8.5.1 Errors集合 269 8.5.2 ASP页面中的ADO错误 270 8.6 小结 272 第9章 连接、命令和过程 273 9.1 Connection对象 273 9.1.1 返回一个记录集 273 9.1.2 操作命令 274 9.2 Command对象 274 9.2.1 返回记录集 274 9.2.2 操作命令 275 9.2.3 存储过程 276 9.3 优化 289 9.3.1 常用的ADO技巧 289 9.3.2 对象变量 289 9.3.3 高速缓存大小 290 9.3.4 数据库设计 290 9.3.5 数据高速缓存 291 9.4 数据整形 293 9.4.1 使用数据整形 294 9.4.2 性能 297 9.5 小结 298 第10章 ASP与客户端数据 299 10.1 断开连接的记录集 299 10.2 远程数据服务 300 10.2.1 RDS服务器组件 300 10.2.2 RDS客户组件 301 10.2.3 支持RDS的浏览器 301 10.2.4 数据源对象 301 10.2.5 数据绑定 308 10.2.6 更新数据 316 10.3 在服务器和客户之间传输数据 319 10.3.1 基于服务器的组件 319 10.3.2 DataSpace对象 320 10.3.3 使用服务器端组件的优点 322 10.3.4 注册服务器端组件 322 10.3.5 自定义处理器 323 10.4 记录集分页 326 10.4.1 利用ASP页面分页记录集 327 10.4.2 利用ADO分页 330 10.4.3 利用SQL Server完成记录集分页 333 10.4.4 数据分页小结 336 10.5 使用数据库中的图像 337 10.6 小结 338 第11章 使用XML数据 339 11.1 XML的定义 339 11.1.1 XML和HTML的差别 340 11.1.2 标记和元素 343 11.1.3 模式和文档类型定义 346 11.1.4 名称空间 347 11.1.5 文档对象模型 348 11.2 ADO和IE5中的XML 354 11.2.1 存储为XML形式的ADO记录集 354 11.2.2 ADO记录集名称空间 355 11.2.3 ADO记录集模式 355 11.2.4 IE数据岛和绑定 358 11.2.5 以XML数据格式保存记录集 361 11.2.6 打开记录集 365 11.3 用XSL来设计XML 367 11.4 相关的领域 371 11.5 用于SQL Server的XML技术预览 372 11.6 小结 373 第12章 通用数据访问 375 12.1 UDA的构想 375 12.2 OLE DB提供者 376 12.2.1 Indexing Service 376 12.2.2 活动目录 383 12.2.3 Exchange Server 386 12.2.4 定制的提供者 386 12.3 半结构化的数据 389 12.3.1 Record对象 390 12.3.2 Internet 发布 390 12.3.3 WebDAV 401 12.4 企业数据 401 12.4.1 Access和SQL Server二者取一 402 12.4.2 SNA Server和传统数据访问 404 12.5 企业中的ASP 405 12.6 小结 407 第13章 组件和网络应用程序结构 408 13.1 分布式应用程序的结构 408 13.1.1 分层应用程序 408 13.1.2 Windows DNA 410 13.1.3 Windows DNA服务 411 13.1.4 网络结构 413 13.2 组件 415 13.2.1 组件定义 415 13.2.2 COM和COM+ 415 13.2.3 组件服务 416 13.2.4 以数据为中心的组件 417 13.2.5 业务组件 417 13.2.6 用户界面组件 418 13.3 组件应用程序设计 418 13.3.1 转换到组件 419 13.3.2 应用程序设计 419 13.3.3 设计网络组件 420 13.3.4 组件设计 422 13.3.5 组件集成 423 13.3.6 建立组件 424 13.4 应用程序设计范例的研究 425 13.4.1 明确问题 425 13.4.2 应用程序的设计 426 13.4.3 设计权衡 430 13.4.4 设计小结 431 13.5 小结 432 第14章 COM、COM+和ASP 433 14.1 COM的内容 433 14.1.1 COM无处不在 434 14.1.2 COM+的三个方面 434 14.1.3 COM开发工具 436 14.2 接口 437 14.2.1 组件 438 14.2.2 缺省接口 438 14.2.3 GUID—实体的确定名称 439 14.2.4 接口的详细内容 439 14.2.5 IUnknown接口 442 14.2.6 使用IDispatch—后期绑定 442 14.2.7 组件信息的中央存储库 444 14.3 COM+运行期的变化 446 14.3.1 配置的和非配置的组件 447 14.3.2 COM+类别 447 14.4 创建一个ASP COM组件 447 14.4.1 组件的接口 449 14.4.2 创建组件 449 14.5 小结 457 第15章 COM+应用程序 458 15.1 微软组件服务(COM+) 458 15.1.1 拦截原理 459 15.1.2 COM+结构 461 15.1.3 组件/对象的生存期和状态 464 15.2 单元和线程模型 467 15.2.1 线程 467 15.2.2 单元 468 15.2.3 线程模型的属性 470 15.2.4 线程模型和范围 472 15.3 COM+应用程序 476 15.3.1 ObjectContext接口 476 15.3.2 Visual Basic COM+组件 479 15.4 组件服务 487 15.5 组件的调试 494 15.6 小结 496 第16章 ASP脚本组件 497 16.1 使用WSC的环境 497 16.2 一个Windows脚本组件 498 16.2.1 发展历史 498 16.2.2 HelloWorld WSC 499 16.3 WSC的结构 499 16.3.1 描述层 500 16.3.2 脚本层 503 16.3.3 运行期层 504 16.4 可用的接口 504 16.5 编写一个ASP脚本组件 505 16.5.1 AspTable组件 506 16.5.2 使用AspTable对象 511 16.6 ASP脚本组件的特点 513 16.6.1 选择正确的工具 513 16.6.2 脚本组件与VBScript类的比较 513 16.7 小结 514 第17章 用C++建立ASP组件 515 17.1 C++语言 515 17.1.1 C++简史 515 17.1.2 使用C++的原因 516 17.1.3 不使用C++的原因 517 17.1.4 把ASP技巧转到C++上 517 17.2 VC++库 518 17.2.1 微软基础类库 518 17.2.2 活动模板库 519 17.2.3 标准模板库 519 17.3 建立一个C++服务器组件 521 17.3.1 问题 522 17.3.2 设计 522 17.3.3 实现 522 17.3.4 测试 531 17.3.5 错误处理 533 17.3.6 调试 535 17.4 小结 537 第18章 对C++组件的进一步讨论 538 18.1 与ASP进行接口 538 18.2 与COM+进行接口 543 18.2.1 IObjectContext的事务处理 546 18.2.2 IObjectControl的对象缓冲 547 18.3 数据访问 547 18.3.1 通过C++使用ADO 548 18.3.2 OLE DB消费者模板 553 18.3.3 使用ADO,还是使用OLE DB消费者 模板 557 18.4 小结 557 第19章 ASP和事务性Web应用程序 558 19.1 事务处理的定义 558 19.1.1 保持应用程序的完整性 558 19.1.2 ACID属性 559 19.2 分布式事务 560 19.3 事务性COM+应用程序 562 19.3.1 Transaction Support属性 562 19.3.2 活动与同步 564 19.3.3 事务的生存期 567 19.3.4 事务访问自定义资源 573 19.4 COM+事务和IIS 574 19.4.1 事务性ASP 574 19.4.2 事务性ASP中的ObjectContext 对象 575 19.4.3 事务事件 576 19.5 用ASP和COM+进行联机订购 577 19.5.1 业务需要 577 19.5.2 设计 577 19.5.3 实现 578 19.5.4 程序验证 585 19.6 小结 586 第20章 ASP和消息队列服务器 587 20.1 消息排队的定义 587 20.1.1 MSMQ的定义 588 20.1.2 使用MSMQ和ASP的原因 589 20.2 MSMQ结构 591 20.2.1 服务器类型 591 20.2.2 客户类型 592 20.2.3 站点布局图 593 20.2.4 投递选项 593 20.3 管理MSMQ 594 20.3.1 增加队列 594 20.3.2 消息队列的属性 596 20.3.3 消息属性 597 20.4 MSMQ对象模型 599 20.4.1 MSMQApplication对象 600 20.4.2 MSMQQuery对象 600 20.4.3 MSMQQueueInfos集合 601 20.4.4 MSMQQueueInfo对象 601 20.4.5 MSMQQueue对象 602 20.4.6 MSMQMessage对象 603 20.4.7 MSMQEvent对象 605 20.4.8 MSMQTransaction对象 605 20.4.9 MSMQTransactionDispenser对象 605 20.4.10 MSMQCoordinatedTransaction Dispenser对象 606 20.4.11 访问MSMQ的其他方式 606 20.5 用于MSMQ的MS DTC事务 606 20.6 高级MSMQ消息 606 20.7 COM+队列化组件 609 20.8 扩展联机订货的示例 610 20.8.1 在组件中添加MSMQ 610 20.8.2 处理队列化订单 612 20.9 小结 614 第21章 ADSI和AD介绍 615 21.1 ADSI的用途 615 21.2 必需的软件 616 21.3 AD的内部结构 617 21.3.1 目录里的对象和属性 617 21.3.2 对象的类 618 21.3.3 容器和叶 619 21.3.4 模式 619 21.3.5 继承 620 21.4 目录的特征 622 21.4.1 优化查找 622 21.4.2 查找功能 622 21.4.3 开放性 622 21.4.4 事务处理 622 21.4.5 复制 623 21.5 常见目录 623 21.5.1 Netscape目录服务器 623 21.5.2 IIS元数据库 623 21.5.3 Exchange Server目录和站点服务器 成员目录 623 21.5.4 Netware目录服务 623 21.5.5 WinNT 623 21.6 ADSI的适用范围 624 21.7 LDAP的适用范围 625 21.8 绑定到一个ADSI对象 626 21.8.1 ADSI对象和Directory对象 626 21.8.2 查看ADSI对象的属性 627 21.9 浏览目录:枚举容器的所有子对象 628 21.10 使用模式定义的属性 631 21.11 Get和GetEx 634 21.12 PropertyBrowseEx示例 634 21.13 AD与WinNT提供者比较 636 21.14 属性缓存 638 21.15 设置属性的值 639 21.16 目录的验证 639 21.17 查找 641 21.17.1 用以查找ADSI目录的命令字符串 644 21.17.2 查找过滤器 645 21.18 小结 646 第22章 ASP和用于NT服务器的CDO 647 22.1 CDO是什么 647 22.2 使用CDO的原因 647 22.2.1 NT服务器下的CDO 648 22.2.2 CDO与CDONTS的比较 648 22.2.3 CDO for Windows 2000 649 22.3 CDONTS库 649 22.3.1 引用类型库 650 22.3.2 NewMail对象 651 22.3.3 其他的CDONTS对象 658 22.3.4 设置SMTP Service 666 22.3.5 SMTP Service配置 667 22.4 在ASP应用程序中使用CDONTS 670 22.4.1 简单邮箱应用程序 671 22.4.2 Inbox应用程序 676 22.5 小结 683 第23章 ASP、CDO与Exchange Server 684 23.1 CDO库 684 23.1.1 通用/共享对象 684 23.1.2 Session对象 695 23.1.3 文件夹 697 23.1.4 地址列表 698 23.1.5 信息存储 699 23.1.6 消息 699 23.1.7 通用属性 704 23.2 邮件客户端应用程序 705 23.2.1 概述 705 23.2.2 服务器配置 705 23.2.3 类型库 707 23.2.4 Login.asp 707 23.2.5 FrameSet.asp 708 23.2.6 FolderList.asp 709 23.2.7 MessageList.asp 712 23.2.8 ViewMessage.asp 715 23.2.9 SendMessage.asp 719 23.2.10 SendMail.asp 722 23.2.11 Logout.asp 725 23.3 小结 725 第24章 服务器防护 726 24.1 安全的定义 726 24.1.1 Internet上的安全问题 726 24.1.2 安全策略 728 24.2 Windows 2000的防护 730 24.2.1 磁盘格式 730 24.2.2 Window 2000安全检查列表 730 24.2.3 防火墙和代理服务器 737 24.3 IIS 5.0的防护 739 24.3.1 IIS的安全配置 739 24.3.2 验证方法 742 24.4 SQL Server 7.0和ODBC的安全 744 24.4.1 保护sa帐号 744 24.4.2 为数据库访问建立替代帐号 744 24.5 建立自己的ASP安全系统 746 24.6 小结 755 第25章 证书的使用 756 25.1 安全性、一致性和可靠性 756 25.2 证书与证书机构 759 25.3 从证书机构获取证书 762 25.4 使用证书 768 25.4.1 使用服务器证书 768 25.4.2 使用个人证书 768 25.4.3 使用软件发行者证书 769 25.4.4 客户证书映射 769 25.4.5 证书的生存期 772 25.5 管理证书 772 25.5.1 证书存储 772 25.5.2 IIS证书管理 774 25.5.3 IE证书管理 775 25.5.4 Outlook Express证书管理 776 25.6 证书与ASP 776 25.7 成为自己的证书机构 777 25.7.1 Certificate Services 778 25.7.2 建立证书机构 779 25.7.3 管理证书机构 779 25.7.4 与证书机构的交互 780 25.8 小结 781 第26章 优化ASP的性能 782 26.1 衡量工作性能的标准 782 26.1.1 吞吐量 782 26.1.2 响应时间 783 26.1.3 衡量性能的其他指标 784 26.2 改善服务器的硬件性能 786 26.2.1 内存 786 26.2.2 硬盘 787 26.2.3 网络带宽 787 26.2.4 CPU 787 26.2.5 更多的服务器 787 26.3 性能的调整 787 26.3.1 解决性能问题 787 26.3.2 强度工具 788 26.3.3 脚本优化 789 26.3.4 会话和应用程序状态 789 26.3.5 安全套接字层 793 26.3.6 进程隔离 793 26.3.7 缓存技术和字典 794 26.3.8 数据库性能 795 26.3.9 真正充足的时间:MSMQ 796 26.3.10 脚本与组件的比较 796 26.3.11 多处理器的可扩展性 798 26.3.12 线程闸门 800 26.3.13 设置元数据库 801 26.3.14 性能计数器 802 26.4 各种小技巧 805 26.4.1 Stm的重命名技巧 805 26.4.2 避免嵌套的包含 806 26.4.3 不使用非脚本映射的文件扩展名 806 26.4.4 关闭脚本调试器 806 26.4.5 最小化脚本块转换 806 26.4.6 不要混用脚本引擎 807 26.4.7 在“费时”操作前使用Response.Is Client Connected 807 26.4.8 使用标记 808 26.4.9 不使用OnStartPage和OnEndPage 808 26.4.10 发挥客户端的作用 808 26.5 小结 808 第27章 建立多服务器网站 810 27.1 多服务器网站 810 27.1.1 Web阵的不足 811 27.1.2 Web阵基础 812 27.2 负载平衡模式 813 27.2.1 DNS循环复用法 813 27.2.2 硬件负载平衡 814 27.2.3 TCP/IP Network Load Balancing 817 27.2.4 复合方式 819 27.2.5 High Availability Clustering Service 820 27.2.6 COM+Dynamic Load Balancing 822 27.3 状态管理 824 27.3.1 不管理状态 824 27.3.2 客户端存储 824 27.3.3 亲和性 824 27.3.4 在一个中心服务器上存储状态 826 27.4 安全 826 27.5 小结 827 第28章 XML驱动的报纸实例 829 28.1 报纸的剖析 829 28.1.1 作者写稿 831 28.1.2 编辑修改 832 28.1.3 读者阅读 834 28.1.4 结构要求 835 28.2 网站的大脑:settings.xml 835 28.2.1 元素 836 28.2.2 元素 836 28.2.3 元素 836 28.2.4 准备global.asa 837 28.2.5 插入导航 838 28.2.6 元素 840 28.3 网站的躯干:headlines.asp 841 28.3.1 ShowHeadlines过程 842 28.3.2 ShowBlurbs过程 843 28.3.3 ShowBriefs过程 844 28.3.4 ShowStory过程 846 28.3.5 使用ShowStory过程 849 28.3.6 主页 852 28.4 管理工具 854 28.4.1 setting_stories.asp 854 28.4.2 setting_glossary.asp 858 28.4.3 关于admin文件夹的其他内容 861 28.5 系统集成 861 28.6 小结 864 附录A ASP 3.0的对象模型 865 附录B 脚本运行期库对象 871 附录C 微软服务器组件 877 附录D 错误代码 881 附录E ADO 2.5对象模型 893 附录F ADO 2.5常量 902 附录G 有用的资料 920 附录H p2p.wrox.com 926
PART I – 概览.........................................................................................................................11 第 1章 – DB2 Express-C是什么?..........................................................................................13 1.1免费开发、部署和分发… 无限制!...............................................................................13 1.2用户帮助和技术支持.....................................................................................................14 1.3 DB2服务器..................................................................................................................14 1.4 DB2客户端和驱动........................................................................................................14 1.5 应用程序开发的自由性.................................................................................................15 1.6 DB2 版本号与 DB2 版本分类........................................................................................16 1.7升级到其它的 DB2版本................................................................................................16 1.8 DB2 Express-C的维护.................................................................................................16 1.9相关免费软件................................................................................................................17 1.9.1 IBM数据工作室(Data Studio)...........................................................................17 1.9.2 DB2 Net Search Extender .....................................................................................17 1.9.3 Starter Toolkit for DB2 on Rails.............................................................................17 1.9.4 Web 2.0 Starter Toolkit for DB2 ............................................................................17 1.9.5 WebSphere Application Server – Community Edition............................................18 第 2章 – DB2相关特性和产品................................................................................................19 2.1 DB2 Express-C订购中包含的功能...............................................................................22 2.1.1 Fix packs补丁包...................................................................................................22 2.1.2高可用性灾难恢复(HADR) ................................................................................22 2.1.3数据复制(Data Replication)...............................................................................22 2.2 DB2 Express-C所不具备的功能...................................................................................23 2.2.1数据库分区............................................................................................................23 2.2.2连接集中器(Connection Concentrator ).............................................................23 2.2.3 Geodetic Extender ................................................................................................23 2.2.4工作负载管理(Workload Management, WLM) .......................................................24 2.3 DB2相关收费产品........................................................................................................24 2.3.1 DB2连接(DB2 Connect)...................................................................................24 2.3.2 WebSphere Federation Server..............................................................................24 2.3.3 WebSphere Replication Server .............................................................................25 第 3章 – 安装 DB2..................................................................................................................27 3.1安装前提条件................................................................................................................27 3.2操作系统中的安装权限.................................................................................................27 3.3安装向导.......................................................................................................................27 3.4自动安装.......................................................................................................................31 实验 #1 安装DB2 Express-C,创建 SAMPLE数据库........................................................32 第 4章 – DB2的应用环境.......................................................................................................35 实验 #2 - 创建一个新的数据库............................................................................................43 4.1 DB2配置......................................................................................................................44 4.1.1 环境变量................................................................................................................44 4.1.2 数据库管理器配置文件(dbm cfg) ...........................................................................44 4.1.3 数据库配置文件(db cfg)....................................................................................46 4.1.4 DB2 概要文件注册表.............................................................................................47 4.2 DB2管理服务器...........................................................................................................48 实验 #3 – 实例、数据库和配置管理....................................................................................49 第 5章 – DB2工具..................................................................................................................51 5.1控制中心(Control Center).........................................................................................52 5.2命令编辑器(Command Editor) .................................................................................55 5.3 SQL帮助向导(SQL Assist Wizard ).........................................................................57 5.4 显示SQL按钮..............................................................................................................58 实验 #4 使用脚本填充EXPRESS数据库...........................................................................59 5.5 脚本..............................................................................................................................60 5.5.1 SQL脚本...............................................................................................................60 5.5.2操作系统(shell)脚本..........................................................................................61 实验 #5 为EXPRESS数据库创建一个安装脚本.................................................................62 5.6任务中心(Task Center )...........................................................................................65 5.6.1工具目录(Tools Catalog)数据库........................................................................65 5.7 日志(Journal)...........................................................................................................66 5.8运行状况监视器(Health Monitor ).............................................................................67 5.8.1运行状况中心(Health Center )...........................................................................68 PART II – DB2 Express-C 数据库管......................................................................................71 第 6章 – DB2体系结构...........................................................................................................73 6.1 DB2进程模型...............................................................................................................73 6.2 DB2内存模型...............................................................................................................74 6.3 DB2存储模型...............................................................................................................75 6.3.1数据页和扩展数据块..............................................................................................75 6.3.2缓冲池...................................................................................................................76 6.3.3表空间...................................................................................................................77 第 7章 – DB2 客户端的连接....................................................................................................81 7.1 DB2 目录......................................................................................................................81 7.2 配置助手(Configuration Assistant )..........................................................................82 7.2.1服务器端的安装要求..............................................................................................82 7.2.2 Setup required at the client 客户端的安装要求......................................................84 7.2.3建立客户端与服务器端概要文件............................................................................87 实验 #6 使用配置助手........................................................................................................90 第 8章 – 数据库对象...............................................................................................................93 8.1 模式..............................................................................................................................93 8.2表.................................................................................................................................93 8.2.1数据类型................................................................................................................93 8.2.2标识列...................................................................................................................96 8.2.3序列对象................................................................................................................96 8.2.4系统目录表............................................................................................................97 8.2.5已声明临时表.........................................................................................................97 实验 #7 创建一个数据表.....................................................................................................99 8.3视图............................................................................................................................101 8.4索引............................................................................................................................101 8.4.1 Design Advisor ....................................................................................................101 8.5参照完整性.................................................................................................................102 第 9章 – 数据迁移工具..........................................................................................................105 9.1 导出(EXPORT)工具...............................................................................................106 9.2 导入(IMPORT)工具................................................................................................106 9.3 使用 LOAD来导入......................................................................................................107 9.4 db2move 工具...........................................................................................................108 9.5 db2look 工具..............................................................................................................109 实验 #8 导出EXPRESS数据库的DDL............................................................................111 第 10章 – 数据库安全...........................................................................................................115 10.1 认证..........................................................................................................................116 10.2 授权..........................................................................................................................116 10.3 DBADM权限............................................................................................................118 10.4 PUBLIC 组...............................................................................................................119 10.5 GRANT和REVOKE语句 ........................................................................................119 10.6 查看授权和特权........................................................................................................119 10.7 关于组特权...............................................................................................................121 实验 #9 授予和撤销用户的权限........................................................................................122 第 11章 – 备份和恢复...........................................................................................................125 11.1 数据库的日志记录....................................................................................................125 11.2 日志的类型...............................................................................................................126 11.3 日志记录的类型.......................................................................................................126 11.3.1 循环日志记录 ....................................................................................................126 11.3.2 档案日志记录和日志保留...................................................................................127 11.4 从控制中心进行数据库日志记录...............................................................................127 11.5 日志记录的参数........................................................................................................129 11.6 数据库备份...............................................................................................................129 实验 #10 – 安排一个备份计划..........................................................................................131 11.7 数据库恢复...............................................................................................................133 11.7.1 恢复类型............................................................................................................133 11.7.2 数据库恢复........................................................................................................133 11.8 其他关于备份和恢复的操作......................................................................................134 第 12章 – 维护任务...............................................................................................................135 12.1 重组(REORG)、运行统计(RUNSTATS)、重绑定(REBIND).......................135 12.1.1重组(REORG)命令........................................................................................135 12.1.2运行统计(RUNSTATS)命令 ..........................................................................136 12.1.3 绑定/重新绑定.................................................................................................136 12.1.4 在控制中心执行维护工作...................................................................................137 12.2 维护方式...................................................................................................................139 实验#11 – 配置自动维护.................................................................................................141 第 13章 – 并行与锁定...........................................................................................................143 13.1 事务(Transactions)..............................................................................................143 13.2 并行(Concurrency) ..............................................................................................143 13.3无并行控制导致的问题 .............................................................................................144 13.3.1丢失更新(Lost update)..................................................................................145 13.3.2未落实的读(Uncommitted read)....................................................................145 13.3.3不可重复读(Non-repeatable read).................................................................146 13.3.4幻象(Phantom read)......................................................................................146 13.4隔离级别(Isolation Levels)...................................................................................147 13.4.1未落实的读........................................................................................................147 13.4.2游标稳定性........................................................................................................147 13.4.3读稳定性............................................................................................................148 13.4.4可重复读............................................................................................................148 13.4.5隔离级别对比.....................................................................................................148 13.4.6设定隔离级别.....................................................................................................149 13.5锁定升级...................................................................................................................150 13.6锁定监视...................................................................................................................151 13.7锁定等待...................................................................................................................151 13.8死锁的引发与侦测.....................................................................................................152 13.9并行与锁定的最佳实践:..........................................................................................153 PART III – DB2 Express-C应用程序开发............................................................................155 第 14章 –SQL PL 存储过程..................................................................................................157 14.1 IBM数据工作室(Data Studio)..............................................................................158 14.1.2在Data Studio中创建一个存储过程..................................................................159 14.2 SQL PL 存储过程基础..............................................................................................161 14.2.1存储过程的结构.................................................................................................161 14.2.2 可选的存储过程属性..........................................................................................162 14.2.3参数...................................................................................................................162 14.2.4 SQL PL存储过程中的注释................................................................................163 14.2.5 复合语句............................................................................................................163 14.2.6 变量声明............................................................................................................163 14.2.7 赋值语句............................................................................................................164 14.3 游标..........................................................................................................................164 14.4 流控制......................................................................................................................164 14.5 调用存储过程 ...........................................................................................................165 14.6 错误和情况处理器....................................................................................................166 14.7 动态SQL..................................................................................................................168 第 15章 – 直接插入 SQL 过程语言、触发器、用户定义函数(UDF)..................................169 15.1直接插入SQL PL .....................................................................................................169 15.2 触发器(Trigger)....................................................................................................170 15.2.1 触发器的类型 ....................................................................................................170 实验 #12 从控制中心创建一个触发器...............................................................................174 15.3 用户定义函数 (UDF).................................................................................................177 15.3.1 标量函数(Scalar function).............................................................................177 15.3.2 表函数(Table function)..................................................................................178 实验 #13 使用IBM Data Studio创建用户定义函数(UDF)............................................179 第 16章 – DB2 pureXML......................................................................................................181 16.1 在数据库中使用XML................................................................................................181 16.2 XML数据库..............................................................................................................182 16.2.1 启用 XML的数据库............................................................................................182 16.2.2 原生 XML数据库...............................................................................................182 16.3 DB2中的XML..........................................................................................................183 16.3.1 pureXML 技术优势............................................................................................184 16.3.2 XPath基础........................................................................................................185 16.3.3 XQuery的定义..................................................................................................188 16.3.4 插入 XML文档...................................................................................................189 16.3.5 查询 XML数据...................................................................................................191 16.3.6 使用 SQL/XML执行联合操作............................................................................196 16.3.7 使用 XQuery执行联合操作................................................................................196 16.3.8 更新与删除操作.................................................................................................197 16.3.9 XML 索引.........................................................................................................198 实验 #14 - SQL/XML 和 XQuery.......................................................................................200 第 17章 – 使用 Java、PHP和 Ruby进行数据库应用开发...................................................201 17.1 Java应用程序开发...................................................................................................201 17.1.1 JDBC类型 2驱动程序.......................................................................................201 17.1.2 JDBC类型 4驱动程序.......................................................................................202 17.2 PHP应用程序开发...................................................................................................203 17.2.1 DB2为PHP提供的连接选项.............................................................................203 17.2.2 Zend Core for IBM.............................................................................................204 17.3 Ruby on Rails应用程序开发.....................................................................................206 17.3.1 Startup Toolkit for DB2 on Rails ........................................................................206 附录 A — 排除故障...............................................................................................................207 A.1 查找错误代码的更多信息...........................................................................................207 A.2 SQLCODE与SQLSTATE .........................................................................................208 A.3 DB2 管理通知日志.....................................................................................................208 A.4 db2diag.log................................................................................................................209 A.5 CLI追踪.....................................................................................................................209 A.6 DB2缺陷与补丁.........................................................................................................209 参考资源 ...............................................................................................................................210 网站..................................................................................................................................210 书籍..................................................................................................................................211

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧