第 4 章 A D O 与 O D B C - 图1返 回 总 目 录

目 录

第 4 章 A D O 与 O D B C 4

4 .1 什么是 O D B C 8

4 .2 A D O 和 O LE - D B — — 同一问题 不同层次的解 决方案 2 4

第 4 章 A D O 与 O D B C - 图24 .3 什么时候 应该使用 O LE - D B ADO 或 O D B C 2 9

  1. 第 4 章 A D O 与 O D B C - 图3[.4 V

    is u a l C + + O D B C O LE - D B 及 ADO 类概述 3 2](#vi-su-al-c-od-bc-ol-e--db-及-ad-o-类-概-述)

第 5 章 数 据 库 创 建 概 述 3 5

  1. .1 构造块概 述 3 7

5 .2 创建数据 库 5 5

5 .3 添 加 表 5 9

5 .4 使用查询 排序数据 7 4

  1. .5 创建测试 窗体 7 8

第 6 章 使 用 OD B C 建 立 数 据 库 应 用 程 序 8 2

  1. [.1 创建简单 的窗体视图应 用程序 8

    5](#创-建-简-单-的-窗-体-视-图-应-用-程-序)

  1. .2 操纵数据 库的内容 1 1 2

第 7 章 使 用 O L E - D B 或 AD O 建 立 数 据 库 应 用 程 序 1 4 6

  1. [.1 创建简单 的网格视图应 用程序 1 4

    9](#创-建-简-单-的-网-格-视-图-应-用-程-序)

7 .2 向应用程 序添加报告 1 7 8

第 4 章 A D O 与 O D B C

第 4 章 A D O 与 O D B C - 图4第 4 章 A D O 与 O D B C - 图5第 4 章 A D O 与 O D B C - 图6第 4 章 A D O 与 O D B C - 图7第 4 章 A D O 与 O D B C - 图8第 4 章 A D O 与 O D B C - 图9第 4 章 A D O 与 O D B C - 图10第 4 章 A D O 与 O D B C - 图11第 4 章 A D O 与 O D B C - 图12第 4 章 A D O 与 O D B C - 图13第 4 章 A D O 与 O D B C - 图14第 4 章 A D O 与 O D B C - 图15第 4 章 A D O 与 O D B C - 图16有 很 多 种 使 用 数 据 库 的 方 法 对 大 多 数 数 据 库 来 说 选 择 C+ + 这 种 产 品 也许 并 不 适 宜 我 们 知 道 像 dB A S E IV F oxP ro O racle 和 A cce s s 这 样 的 产 品是 完 全 以 数 据 库 管 理 为 中 心 的 事 实 上 这 些 产 品 非 常 善 于 创 建 数 据 库 管 理 器 以 至 于 它 们 确 实 并 不 善 于 做 太 多 其 它 的 工 作 即 使 要 用 更 通 用 化 而 非 更 专 用 化的 数 据 库 产 品 来 执 行 一 些 类 型 的 工 作 在 使 程 序 设 计 更 容 易 这 一 方 面 像 V is u a l B a s ic 和 D e lphi 这 样 的 RA D 环 境 也 要 比 V is u a l C + + 强 很 多

第 4 章 A D O 与 O D B C - 图17第 4 章 A D O 与 O D B C - 图18第 4 章 A D O 与 O D B C - 图19第 4 章 A D O 与 O D B C - 图20第 4 章 A D O 与 O D B C - 图21第 4 章 A D O 与 O D B C - 图22第 4 章 A D O 与 O D B C - 图23第 4 章 A D O 与 O D B C - 图24第 4 章 A D O 与 O D B C - 图25第 4 章 A D O 与 O D B C - 图26第 4 章 A D O 与 O D B C - 图27第 4 章 A D O 与 O D B C - 图28第 4 章 A D O 与 O D B C - 图29第 4 章 A D O 与 O D B C - 图30第 4 章 A D O 与 O D B C - 图31你 是 不 是 对 我 的 说 法 感 到 很 奇 怪 下 面 我 就 要 谈 一 谈 在 谈 到 使 用 数 据 库管 理 系 统 (D B M S ) 这 个 话 题 时 用 V is u a l C + + 实 际 上 可 以 做 些 什 么 虽 然 上 述 其它 语 言 使 得 编 写 成 熟 的 包 括 用 户 界 面 和 高 速 搜 索 能 力 的 DB M S 就 像 孩 子 做 游 戏一 样 容 易 但 是 它 们 缺 少 V is u a l C + + 可 以 提 供 的 某 些 重 要 东 西 你 不 能 为 使用 A cce s s 的 数 据 库 轻 松 地 编 写 出 实 用 程 序 正 像 实 用 程 序 的 定 义 所 说 的 实 用程 序 应 该 很 小 并 且 具 备 可 移 植 性 A cce s s 应 用 程 序 却 不 是 这 样 即 使 用 A cce s s 这 样 的 产 品 创 建 的 程 序 可 以 很 小 并 且 可 以 移 植 你 仍 有 其 它 方 面 的 需 求 底 层的 功 能

第 4 章 A D O 与 O D B C - 图32第 4 章 A D O 与 O D B C - 图33第 4 章 A D O 与 O D B C - 图34注 编 写 数 据 库 实 用 程 序 及 驱 动 程 序 时 可 以 选 择 Visual C++ 语 言

第 4 章 A D O 与 O D B C - 图35第 4 章 A D O 与 O D B C - 图36第 4 章 A D O 与 O D B C - 图37第 4 章 A D O 与 O D B C - 图38第 4 章 A D O 与 O D B C - 图39第 4 章 A D O 与 O D B C - 图40想 像 一 下 使 用 像 V isu a l B a sic 这 样 的 语 言 来 与 实 时 数 据 采 集 设 备 打 交 道 的情 况 在 进 行 底 层 访 问 时 RA D 的 保 护 环 境 常 常 使 程 序 员 不 能 进 行 有 效 的 处 理当 然 数 据 采 集 设 备 几 乎 不 依 赖 于 简 明 的 连 接 你 打 算 如 何 把 V is u a l B a s ic 和 外

第 4 章 A D O 与 O D B C - 图41第 4 章 A D O 与 O D B C - 图42第 4 章 A D O 与 O D B C - 图43部 的 数 据 源 连 接 起 来 呢 数 据 源 甚 至 可 能 不 了 解 W ind ow s DOS 或 类 似 的 成 熟的 操 作 系 统

第 4 章 A D O 与 O D B C - 图44第 4 章 A D O 与 O D B C - 图45第 4 章 A D O 与 O D B C - 图46第 4 章 A D O 与 O D B C - 图47第 4 章 A D O 与 O D B C - 图48第 4 章 A D O 与 O D B C - 图49第 4 章 A D O 与 O D B C - 图50第 4 章 A D O 与 O D B C - 图51第 4 章 A D O 与 O D B C - 图52第 4 章 A D O 与 O D B C - 图53第 4 章 A D O 与 O D B C - 图54第 4 章 A D O 与 O D B C - 图55第 4 章 A D O 与 O D B C - 图56第 4 章 A D O 与 O D B C - 图57第 4 章 A D O 与 O D B C - 图58第 4 章 A D O 与 O D B C - 图59第 4 章 A D O 与 O D B C - 图60第 4 章 A D O 与 O D B C - 图61第 4 章 A D O 与 O D B C - 图62第 4 章 A D O 与 O D B C - 图63第 4 章 A D O 与 O D B C - 图64第 4 章 A D O 与 O D B C - 图65第 4 章 A D O 与 O D B C - 图66第 4 章 A D O 与 O D B C - 图67第 4 章 A D O 与 O D B C - 图68第 4 章 A D O 与 O D B C - 图69第 4 章 A D O 与 O D B C - 图70第 4 章 A D O 与 O D B C - 图71第 4 章 A D O 与 O D B C - 图72第 4 章 A D O 与 O D B C - 图73第 4 章 A D O 与 O D B C - 图74只 要 使 用 得 当 很 容 易 看 到 V is u a l C + + 是 一 种 不 可 或 缺 的 数 据 库 管 理 工 具针 对 大 规 模 的 应 用 程 序 即 使 你 仍 想 依 赖 于 V isu a l B a sic 这 样 的 RA D 语 言 也请 考 虑 一 下 V is u a l C +

  • 它 创 建 的 程 序 规 模 小 提 供 底 层 访 问 并 能 提 供 实 时 访问 事 实 上 你 可 能 还 没 有 想 到 V is u a l C + + 数 据 库 应 用 程 序 的 市 场 是 很 有 潜力 的 随 着 人 们 在 旅 途 中 越 来 越 多 地 使 用 膝 上 型 和 掌 上 型 电 脑 这 两 类 电 脑 上的 数 据 库 应 用 程 序 也 变 得 越 来 越 普 通 你 也 许 能 够 适 应 今 天 的 膝 上 型 电 脑 上 的A cce s s 应 用 程 序 但 谈 到 硬 盘 大 小 或 内 存 需 求 时 公 司 里 较 老 的 膝 上 型 电 脑 可能 就 达 不 到 要 求 运 行 W ind ow s C E 的 掌 上 型 电 脑 在 运 行 这 个 A cce s s 应 用 程 序时 肯 定 会 发 生 故 障 在 这 一 数 据 库 市 场 的 新 领 域 V is u a l C + + 提 供 了 无 价 无限 的 工 具

Web 链 接 谈 到 使 用 Visual C++ 和 数 据 库 其 实 你 并 不 孤 单 从 一 开 始 就有 数 据 库 专 用 新 闻 组 提 供 有 关 数 据 库 创 建 技 巧 的 帮 助 比 如microsoft. public.access 不 过 这 些 新 闻 组 提 供 的 是 通 用 信 息对 实 际 编 写 应 用 程 序 并 非 全 都 那 么 有 用 专 门 针 对 Visual C++ 问 题的 新 闻 组 是 microsoft. public.vc.database 和microsoft. public.v c.m fcdatabase 如 果 你 决 定 用 ODBC 访 问 数 据库 可 能 还 要 查 看 一 下 microsoft. public.odbc.sdk 新 闻 组 它 讨 论的 不 仅 仅 是 S D K 对 最 新 技 术 感 兴 趣 的 程 序 员 可 以 查 阅microsoft. public.ado 新 闻 组 或 者 microsoft.pu blic.oledb 第 4 章 A D O 与 O D B C - 图75

第 4 章 A D O 与 O D B C - 图76第 4 章 A D O 与 O D B C - 图77第 4 章 A D O 与 O D B C - 图78第 4 章 A D O 与 O D B C - 图79第 4 章 A D O 与 O D B C - 图80象 链 接 和 嵌 入 数 据 库 第 4 章 A D O 与 O D B C - 图81 新 闻 组 前 者 讨 论 A D O 后 者 讨 论 A D O 的 基 础技 术 在 microsoft. public.ado.rds 有 一 个 ADO 子 组 它 讨 论 远 程数 据 访 问

第 4 章 A D O 与 O D B C - 图82第 4 章 A D O 与 O D B C - 图83第 4 章 A D O 与 O D B C - 图84既 然 所 有 的 疑 惑 都 消 除 了 大 多 数 人 的 信 心 也 就 增 强 了 下 面 我 们 就 介 绍两 种 使 C+ + 访 问 数 据 库 中 的 数 据 的 主 要 方 法 ODB C 第 4 章 A D O 与 O D B C - 图85 开 放 数 据 库 互 连 第 4 章 A D O 与 O D B C - 图86 和 ADO

第 4 章 A D O 与 O D B C - 图87第 4 章 A D O 与 O D B C - 图88第 4 章 A D O 与 O D B C - 图89第 4 章 A D O 与 O D B C - 图90第 4 章 A D O 与 O D B C - 图91第 4 章 A D O 与 O D B C - 图92第 4 章 A D O 与 O D B C - 图93第 4 章 A D O 与 O D B C - 图94第 4 章 A D O 与 O D B C - 图95第 4 章 A D O 与 O D B C - 图96第 4 章 A D O 与 O D B C - 图97A c tiv e X 数 据 对 象 第 4 章 A D O 与 O D B C - 图98 在 本 章 中 将 介 绍 这 两 种 类 型 的 访 问 方 法 但 我 想 你会 发 现 ADO 方 法 是 针 对 新 的 程 序 设 计 情 形 而 采 用 的 它 克 服 了 早 期 技 术 的 诸多 限 制 依 赖 于 M ic ros oft 新 的 底 层 访 问 方 法 O LE - D B 对 象 链 接 和 嵌 入 数 据 库 第 4 章 A D O 与 O D B C - 图99在 本 书 的 后 面 我 们 会 看 到 用 ADO 和 V is u a l C + + 提 供 的 各 种 向 导 来 汇 集 数 据 库工 程 其 速 度 有 多 快

第 4 章 A D O 与 O D B C - 图100第 4 章 A D O 与 O D B C - 图101注 ODBC 通 常 用 来 访 问 不 具 备 OLE-DB 特 性 的 非 Microsoft 数 据 库 中 的 数据 16 位 的 ODBC 驱 动 程 序 工 作 起 来 可 能 非 常 缓 慢

第 4 章 A D O 与 O D B C - 图102第 4 章 A D O 与 O D B C - 图103第 4 章 A D O 与 O D B C - 图104第 4 章 A D O 与 O D B C - 图105第 4 章 A D O 与 O D B C - 图106第 4 章 A D O 与 O D B C - 图107第 4 章 A D O 与 O D B C - 图108第 4 章 A D O 与 O D B C - 图109第 4 章 A D O 与 O D B C - 图110第 4 章 A D O 与 O D B C - 图111第 4 章 A D O 与 O D B C - 图112第 4 章 A D O 与 O D B C - 图113第 4 章 A D O 与 O D B C - 图114ODB C 素 以 最 慢 的 数 据 访 问 方 法 而 著 称 但 是 很 可 惜 当 ADO 或 DAO 都不 支 持 某 个 数 据 库 管 理 器 而 ODB C 支 持 这 个 数 据 库 管 理 器 时 在 这 种 特 定 的 情形 下 你 仍 然 需 要 使 用 ODB C 在 大 多 数 情 况 下 这 意 味 着 要 从 数 据 库 厂 商 那里 获 得 所 需 的 驱 动 程 序 虽 然 V is u a l C + + 确 实 附 带 了 一 些 产 品 的 驱 动 程 序 如果 你 正 在 使 用 数 据 库 管 理 器 的 某 些 神 秘 功 能 那 么 就 需 要 建 立 自 己 的 接 口 — — 这 并 不 是 一 件 十 分 困 难 的 事 第 4 章 A D O 与 O D B C - 图115本 质 上 讲 你 总 是 要 使 用 ODB C 来 访 问 M ic ros oft 产 品 之 外 的 其 它 DB M S 产 品 所 创 建 的 数 据 库 这 些 数 据 库 并 不 具 备 O LE - D B 功能 ODB C 还 要 求 做 一 些 额 外 的 工 作 — — 为 AD O 调 整 V is u a l C + + 中 的 大 部 分 向导

高 级 技 巧

第 4 章 A D O 与 O D B C - 图116第 4 章 A D O 与 O D B C - 图117第 4 章 A D O 与 O D B C - 图118第 4 章 A D O 与 O D B C - 图119 除 了 使 用 A D O 和 ODBC 外 你 还 可 以 使 用 像 D A O 第 4 章 A D O 与 O D B C - 图120 数 据 访 问 对 象 第 4 章 A D O 与 O D B C - 图121 这 样的 早 期 技 术 该 技 术 包 含 在 像 Access 这 样 的 Microsoft 产 品 中 DAO 依 赖 于 用 Microsoft Access 自 动 获 得 的 Microsoft Jet 数 据 库 引 擎

第 4 章 A D O 与 O D B C - 图122第 4 章 A D O 与 O D B C - 图123第 4 章 A D O 与 O D B C - 图124D A O 还 是 较 早 版 的 Visual Basic 所 使 用 的 引 擎 第 4 章 A D O 与 O D B C - 图125 最 新 版 的 Visual Basic 和 Visual C++ 依 赖 于 相 同 的 ADO/OLE-DB 组 合 第 4 章 A D O 与 O D B C - 图126 所 以 如 果 需 要 支 持 较早 的 Visual Bas ic 应 用 程 序 那 么 D A O 仍 是 一 个 不 错 的 选 择

第 4 章 A D O 与 O D B C - 图127第 4 章 A D O 与 O D B C - 图128第 4 章 A D O 与 O D B C - 图129第 4 章 A D O 与 O D B C - 图130第 4 章 A D O 与 O D B C - 图131第 4 章 A D O 与 O D B C - 图132第 4 章 A D O 与 O D B C - 图133第 4 章 A D O 与 O D B C - 图134第 4 章 A D O 与 O D B C - 图135第 4 章 A D O 与 O D B C - 图136第 4 章 A D O 与 O D B C - 图137 尽 管 Microsoft 文 件 声 明 可 以 用 DAO 访 问 非 Microsoft 产 品 建 立 的数 据 库 但 你 仍 会 发 现 在 这 种 情 况 下 使 用 ADO 和 ODBC 要 好 得 多这 样 的 话 不 但 兼 容 性 问 题 会 少 一 些 速 度 也 将 有 所 提 高 因 为 数 据请 求 经 过 的 接 口 层 减 少 了 有 一 条 经 验 要 记 住 D A O 是 设 计 用 来 处 理 M D B 文 件 的

第 4 章 A D O 与 O D B C - 图138第 4 章 A D O 与 O D B C - 图139第 4 章 A D O 与 O D B C - 图140第 4 章 A D O 与 O D B C - 图141第 4 章 A D O 与 O D B C - 图142第 4 章 A D O 与 O D B C - 图143第 4 章 A D O 与 O D B C - 图144第 4 章 A D O 与 O D B C - 图145第 4 章 A D O 与 O D B C - 图146第 4 章 A D O 与 O D B C - 图147第 4 章 A D O 与 O D B C - 图148第 4 章 A D O 与 O D B C - 图149第 4 章 A D O 与 O D B C - 图150 D A O 的 一 个 问 题 是 它 不 支 持 远 程 通 信 这 是 Microsoft 提 出 RDO 第 4 章 A D O 与 O D B C - 图151 远程 数 据 对 象 第 4 章 A D O 与 O D B C - 图152 的 原 因 之 一 这 种 特 别 技 术 在 Visual Bas ic 应 用 程 序 中的 使 用 要 比 在 Visual C++ 中 的 使 用 多 得 多 所 以 我 猜 想 你 们 中 有很 多 人 都 在 使 用 它 但 是 记 住 R D O 仍 是 一 种 生 命 力 很 强 的 技 术 这一 点 很 重 要 A D O 确 实 具 有 替 代 R D O 的 远 程 数 据 服 务 (RDS)特 征 换 言之 A D O 在 一 个 软 件 包 中 提 供 了 D A O 和 R D O 两 种 功 能 性

  1. 1 什 么 是 OD BC

第 4 章 A D O 与 O D B C - 图153第 4 章 A D O 与 O D B C - 图154第 4 章 A D O 与 O D B C - 图155第 4 章 A D O 与 O D B C - 图156第 4 章 A D O 与 O D B C - 图157第 4 章 A D O 与 O D B C - 图158第 4 章 A D O 与 O D B C - 图159第 4 章 A D O 与 O D B C - 图160第 4 章 A D O 与 O D B C - 图161第 4 章 A D O 与 O D B C - 图162第 4 章 A D O 与 O D B C - 图163第 4 章 A D O 与 O D B C - 图164开 放 数 据 库 互 连 O D BC ) 是 M ic ros oft 引 进 的 一 种 早 期 数 据 库 接 口 技 术 它实 际 上 是 我 们 要 在 本 章 后 面 加 以 讨 论 的 ADO 的 前 身 M ic ros oft 引 进 这 种 技 术的 一 个 主 要 原 因 是 以 非 语 言 专 用 的 方 式 提 供 给 程 序 员 一 种 访 问 数 据 库 内 容的 简 单 方 法 换 句 话 说 访 问 DB F 文 件 或 A c c e ss B a sic 以 得 到 M D B 文 件 中 的数 据 时 无 需 懂 得 X b a s e 程 序 设 计 语 言 事 实 上 V is u a l C + + 就 是 这 样 一 个 程序 设 计 平 台 即 M ic ros oft 最 初 是 以 ODB C 为 目 标 的

第 4 章 A D O 与 O D B C - 图165第 4 章 A D O 与 O D B C - 图166第 4 章 A D O 与 O D B C - 图167第 4 章 A D O 与 O D B C - 图168第 4 章 A D O 与 O D B C - 图169第 4 章 A D O 与 O D B C - 图170第 4 章 A D O 与 O D B C - 图171第 4 章 A D O 与 O D B C - 图172第 4 章 A D O 与 O D B C - 图173第 4 章 A D O 与 O D B C - 图174第 4 章 A D O 与 O D B C - 图175第 4 章 A D O 与 O D B C - 图176第 4 章 A D O 与 O D B C - 图177第 4 章 A D O 与 O D B C - 图178你 会 发 现 ODB C 工 作 起 来 和 W ind ow s 一 样 — — 它 用 包 含 在 DL L 内 的 驱 动程 序 完 成 任 务 其 实 ODB C 提 供 一 套 两 个 驱 动 程 序 一 个 是 数 据 库 管 理 器 的语 言 另 一 个 为 程 序 设 计 语 言 提 供 公 用 接 口 允 许 V is u a l C + + 用 标 准 的 函 数 调用 经 公 用 接 口 访 问 数 据 库 的 内 容 是 这 两 个 驱 动 程 序 的 汇 合 点 当 然 还 有 其它 和 ODB C 有 关 的 实 用 程 序 类 型 的 DL L 例 如 一 个 这 样 的 DL L 允 许 你 管 理ODB C 数 据 源 ODB C 的 实 际 管 理 接 口 出 现 在 SY ST E M 文 件 夹 中 的 某 个 CP L 控制 面 板 第 4 章 A D O 与 O D B C - 图179 文 件 中 — — 我 们 在 后 面 要 谈 到 这 方 面 的 问 题

第 4 章 A D O 与 O D B C - 图180第 4 章 A D O 与 O D B C - 图181第 4 章 A D O 与 O D B C - 图182第 4 章 A D O 与 O D B C - 图183第 4 章 A D O 与 O D B C - 图184第 4 章 A D O 与 O D B C - 图185第 4 章 A D O 与 O D B C - 图186第 4 章 A D O 与 O D B C - 图187第 4 章 A D O 与 O D B C - 图188第 4 章 A D O 与 O D B C - 图189OD B C 的 确 能 履 行 承 诺 提 供 对 数 据 库 内 容 的 访 问 并 且 没 有 太 多 的 问 题它 没 有 提 供 数 据 库 管 理 器 和 C 之 间 尽 可 能 最 好 的 数 据 转 换 这 种 情 况 是 有 的 但 它 多 半 能 像 广 告 所 说 的 那 样 去 工 作 唯 一 影 响 ODB C 前 程 的 是 它 的 速 度 极低 — — 至 少 较 早 版 本 的 产 品 是 这 样 ODB C 最 初 面 世 时 一 些 开 发 者 曾 说 因

第 4 章 A D O 与 O D B C - 图190第 4 章 A D O 与 O D B C - 图191第 4 章 A D O 与 O D B C - 图192为 速 度 问 题 ODB C 永 远 也 不 会 在 数 据 库 领 域 产 生 太 大 的 影 响 然 而 以 M ic ros oft

第 4 章 A D O 与 O D B C - 图193第 4 章 A D O 与 O D B C - 图194第 4 章 A D O 与 O D B C - 图195的 市 场 影 响 力 ODB C 毫 无 疑 问 是 成 功 了 今 天 只 要 有 两 种 ODB C 驱 动 程 序

第 4 章 A D O 与 O D B C - 图196第 4 章 A D O 与 O D B C - 图197的 一 种 那 么 几 乎 每 一 个 数 据 库 管 理 器 的 表 现 都 会 很 卓 越

使 用 ODBC

第 4 章 A D O 与 O D B C - 图198第 4 章 A D O 与 O D B C - 图199第 4 章 A D O 与 O D B C - 图200第 4 章 A D O 与 O D B C - 图201第 4 章 A D O 与 O D B C - 图202第 4 章 A D O 与 O D B C - 图203第 4 章 A D O 与 O D B C - 图204第 4 章 A D O 与 O D B C - 图205第 4 章 A D O 与 O D B C - 图206第 4 章 A D O 与 O D B C - 图207第 4 章 A D O 与 O D B C - 图208第 4 章 A D O 与 O D B C - 图209第 4 章 A D O 与 O D B C - 图210第 4 章 A D O 与 O D B C - 图211在 可 以 用 ODB C 做 任 何 事 之 前 必 须 有 一 个 数 据 库 — — 至 少 在 脑 子 里 在一 个 像 A cce s s 这 样 的 应 用 程 序 中 创 建 数 据 库 框 架 通 常 会 更 容 易 一 些 因 为 A cce s s 可 以 非 常 轻 松 地 提 供 完 成 任 务 所 需 的 各 种 功 能 但 是 如 果 你 至 少 安 装 了 所 需的 ODB C 驱 动 程 序 那 就 可 以 在 C+ + 中 创 建 程 序 框 架 一 设 计 了 数 据 库 就 要为 其 创 建 ODB C 数 据 源 我 们 会 在 本 节 中 看 到 这 一 点 下 面 的 过 程 并 没 有 严 格地 说 明 活 动 的 经 过 只 是 说 明 了 一 种 配 置 数 据 源 的 技 术

注 释 我 会 在 第 5 章 中 说 明 如 何 创 建 一 个 Access 数 据 库 现 在 我 们 只 是看 一 看 为 了 访 问 那 个 数 据 库 我 们 下 一 步 要 做 些 什 么

  1. 第 4 章 A D O 与 O D B C - 图212第 4 章 A D O 与 O D B C - 图213第 4 章 A D O 与 O D B C - 图214第 4 章 A D O 与 O D B C - 图215第 4 章 A D O 与 O D B C - 图216第 4 章 A D O 与 O D B C - 图217第 4 章 A D O 与 O D B C - 图218第 4 章 A D O 与 O D B C - 图219第 4 章 A D O 与 O D B C - 图220第 4 章 A D O 与 O D B C - 图221第 4 章 A D O 与 O D B C - 图222第 4 章 A D O 与 O D B C - 图223第 4 章 A D O 与 O D B C - 图224第 4 章 A D O 与 O D B C - 图225第 4 章 A D O 与 O D B C - 图226第 4 章 A D O 与 O D B C - 图227第 4 章 A D O 与 O D B C - 图228第 4 章 A D O 与 O D B C - 图229第 4 章 A D O 与 O D B C - 图230第 4 章 A D O 与 O D B C - 图231第 4 章 A D O 与 O D B C - 图232第 4 章 A D O 与 O D B C - 图233

    击 C on tro l P a ne l 控 制 面 板 第 4 章 A D O 与 O D B C - 图234 中 的 32 位 ODB C 小 程 序 如 果 当 前 系 统上 未 安 装 16 位 驱 动 程 序 那 么 一 些 版 本 的 W ind ow s 使 用 简 单 的 ODB C 小 程 序 第 4 章 A D O 与 O D B C - 图235 你 会 看 到 ODB C D a ta S o u rc e A d m in is tra to r ODB C 数 据 源 管理 员 第 4 章 A D O 与 O D B C - 图236 对 话 框 如 下 图 所 示 请 注 意 该 对 话 框 中 当 前 显 示 的 选 项 卡 是U s e r D S N 用 户 数 据 源 名 第 4 章 A D O 与 O D B C - 图237 选 项 卡 对 系 统 级 数 据 库 来 说 使 用 Sy s te m D S N 第 4 章 A D O 与 O D B C - 图238 系 统 数 据 源 名 第 4 章 A D O 与 O D B C - 图239 选 项 卡 对 文 件 级 数 据 源 第 4 章 A D O 与 O D B C - 图240 从 严 格 意 义 上 说 它 不 是数 据 库 第 4 章 A D O 与 O D B C - 图241 使 用 F ile D S N 文 件 数 据 源 名 第 4 章 A D O 与 O D B C - 图242 选 项 卡 你 还 会 看 到 一 个 数据 库 的 缺 省 选 项 如 果 想 从 V is u a l C + + 内 部 创 建 数 据 库 就 会 用 到 这 个选 项

第 4 章 A D O 与 O D B C - 图243第 4 章 A D O 与 O D B C - 图244第 4 章 A D O 与 O D B C - 图245第 4 章 A D O 与 O D B C - 图246第 4 章 A D O 与 O D B C - 图247第 4 章 A D O 与 O D B C - 图248第 4 章 A D O 与 O D B C - 图249第 4 章 A D O 与 O D B C - 图250第 4 章 A D O 与 O D B C - 图251第 4 章 A D O 与 O D B C - 图252第 4 章 A D O 与 O D B C - 图253第 4 章 A D O 与 O D B C - 图254第 4 章 A D O 与 O D B C - 图255第 4 章 A D O 与 O D B C - 图256

第 4 章 A D O 与 O D B C - 图257

警 告 对 本 地 数 据 库 来 说 通 常 要 在 User DSN 第 4 章 A D O 与 O D B C - 图258 用 户 DSN 第 4 章 A D O 与 O D B C - 图259 选 项 卡 上 创 建一 个 项 对 远 程 数 据 库 则 在 System DSN 第 4 章 A D O 与 O D B C - 图260系 统 DSN 第 4 章 A D O 与 O D B C - 图261 选 项 卡 上 创 建 任 何 情 况 下 都 不 能 在 User DSN 用 户 DSN 第 4 章 A D O 与 O D B C - 图262 和 System DSN 系 统 DSN 第 4 章 A D O 与 O D B C - 图263选 项 卡 上 创 建 同 名 的 项 通 常 会 出 现 的 问 题 是 你 试 图 访 问 远 程 数 据库 但 从 W e b 服 务 器 获 得 了 非 常 奇 怪 和 矛 盾 的 错 误 消 息 事 实 上 如果 在 远 程 数 据 库 访 问 期 间 得 到 了 奇 怪 的 错 误 消 息 那 么 32 位 ODBC 小程 序 是 首 先 应 该 查 看 的 地 方 之 一

  1. 第 4 章 A D O 与 O D B C - 图264第 4 章 A D O 与 O D B C - 图265第 4 章 A D O 与 O D B C - 图266第 4 章 A D O 与 O D B C - 图267

    击 A d d 按 钮 会 看 到 C reate N e w D a ta S o u rce 创 建 新 的 数 据 源 第 4 章 A D O 与 O D B C - 图268 对 话框 如 下 图 所 示

第 4 章 A D O 与 O D B C - 图269

技 巧 检 查 O D B C D at a So ur ce A dm in is tr at or 第 4 章 A D O 与 O D B C - 图270 O D B C 数 据 源 管 理 员 第 4 章 A D O 与 O D B C - 图271 对 话框 的 A b o u t 选 项 卡 可 以 确 定 你 正 在 使 用 的 O D B C 驱 动 程 序 的 最 新 版 本这 个 选 项 卡 包 含 了 各 种 O D B C D L L 的 版 本 号 生 产 厂 商 的 名 称 以 及 出 现在 S Y S T E M 文 件 夹 中 的 文 件 名 大 多 数 情 况 下 通 过 查 看 版 本 号 可 以 验证 O D B C 驱 动 程 序 是 否 是 最 新 的 版 本

  1. 第 4 章 A D O 与 O D B C - 图272第 4 章 A D O 与 O D B C - 图273第 4 章 A D O 与 O D B C - 图274第 4 章 A D O 与 O D B C - 图275第 4 章 A D O 与 O D B C - 图276第 4 章 A D O 与 O D B C - 图277第 4 章 A D O 与 O D B C - 图278第 4 章 A D O 与 O D B C - 图279第 4 章 A D O 与 O D B C - 图280第 4 章 A D O 与 O D B C - 图281选择一个数

    据源 对本练习来说 我选择了 A ccess 数据源 单击 F in ish 完

第 4 章 A D O 与 O D B C - 图282

会看 到某种类型的配置对话 框

如下面的 O D B C

M icro so ft

A ccess

9 7

Setu p

第 4 章 A D O 与 O D B C - 图283 设置 第 4 章 A D O 与 O D B C - 图284 对 话框所示

第 4 章 A D O 与 O D B C - 图285第 4 章 A D O 与 O D B C - 图286第 4 章 A D O 与 O D B C - 图287第 4 章 A D O 与 O D B C - 图288

注 释 如 果 你 选 择 的 数 据 源 和 我 在 本 实 例 中 选 择 的 不 同 那 么 所 需 的 配 置步 骤 也 和 这 里 说 明 的 不 同 — — 每 个 ODBC 驱 动 程 序 都 要 求 不 同 类 型 的配 置

  1. 第 4 章 A D O 与 O D B C - 图289第 4 章 A D O 与 O D B C - 图290第 4 章 A D O 与 O D B C - 图291第 4 章 A D O 与 O D B C - 图292

    D a ta S o u rce N a m e 数 据 源 名 第 4 章 A D O 与 O D B C - 图293 域 内 输 入 数 据 源 名 称 一 定 要 选 择 意

第 4 章 A D O 与 O D B C - 图294第 4 章 A D O 与 O D B C - 图295第 4 章 A D O 与 O D B C - 图296第 4 章 A D O 与 O D B C - 图297义 明 确 但 又 不 过 于 冗 长 的 名 称 我 选 择 F ood D a ta ba s e 食 品 数 据 库 第 4 章 A D O 与 O D B C - 图298 因 为 我最 终 要 创 建 一 个 与 食 品 库 存 有 关 的 数 据 库 的 链 接

  1. 第 4 章 A D O 与 O D B C - 图299第 4 章 A D O 与 O D B C - 图300第 4 章 A D O 与 O D B C - 图301第 4 章 A D O 与 O D B C - 图302第 4 章 A D O 与 O D B C - 图303第 4 章 A D O 与 O D B C - 图304第 4 章 A D O 与 O D B C - 图305第 4 章 A D O 与 O D B C - 图306第 4 章 A D O 与 O D B C - 图307第 4 章 A D O 与 O D B C - 图308

    D e s c r ip t io n 描 述 第 4 章 A D O 与 O D B C - 图309 域 内 输 入 一 段 说 明 性 文 字 可 以 让 这 个 项 比 上 一个 项 稍 长 一 些 因 为 它 描 述 数 据 库 的 用 途 另 一 方 面 也 不 要 写 入 像 第 4 章 A D O 与 O D B C - 图310 战 争 与和 平 第 4 章 A D O 与 O D B C - 图311 那 样 大 的 小 说 对 本 练 习 我 输 入 了 T h is da ta b a s e c on ta ins inve n tor y in fo rm a t ion fo r a food s tore 本 数 据 库 包 含 食 品 存 储 的 库 存 信 息 第 4 章 A D O 与 O D B C - 图312

  2. 第 4 章 A D O 与 O D B C - 图313第 4 章 A D O 与 O D B C - 图314第 4 章 A D O 与 O D B C - 图315第 4 章 A D O 与 O D B C - 图316第 4 章 A D O 与 O D B C - 图317第 4 章 A D O 与 O D B C - 图318第 4 章 A D O 与 O D B C - 图319第 4 章 A D O 与 O D B C - 图320第 4 章 A D O 与 O D B C - 图321

    击 Se le c t 选 择 第 4 章 A D O 与 O D B C - 图322 按 钮 你 会 看 到 一 个 F ile O p e n - ty p e 文 件 打 开 类 型 第 4 章 A D O 与 O D B C - 图323对 话 框 可 以 在 那 里 选 择 一 个 现 有 的 数 据 库 ODB C 驱 动 程 序 会 自 动 选 择 正 确的 文 件 扩 展 名

技 巧 并 不 是 一 定 要 提 前 设 计 数 据 库 请 注 意 Access ODBC 驱 动 程 序 还包 括 一 个 创 建 新 数 据 库 的 按 钮 很 多 ODBC 驱 动 程 序 都 提 供 了 这 种 功能 但 并 不 是 全 都 这 样 单 击 这 个 按 钮 会 启 动 数 据 库 管 理 器 应 用 程 序并 允 许 你 设 计 数 据 库 注 意 有 一 点 很 有 意 思 Access ODBC 驱 动 程 序还 会 允 许 你 使 用 这 个 对 话 框 压 缩 或 修 补 数 据 库

  1. 第 4 章 A D O 与 O D B C - 图324第 4 章 A D O 与 O D B C - 图325第 4 章 A D O 与 O D B C - 图326第 4 章 A D O 与 O D B C - 图327第 4 章 A D O 与 O D B C - 图328第 4 章 A D O 与 O D B C - 图329第 4 章 A D O 与 O D B C - 图330第 4 章 A D O 与 O D B C - 图331第 4 章 A D O 与 O D B C - 图332第 4 章 A D O 与 O D B C - 图333第 4 章 A D O 与 O D B C - 图334第 4 章 A D O 与 O D B C - 图335第 4 章 A D O 与 O D B C - 图336

    择 系 统 数 据 库 选 项 在 大 多 数 情 况 下 要 选 择 N one 第 4 章 A D O 与 O D B C - 图337第 4 章 A D O 与 O D B C - 图338 除 非 你 为 应用 程 序 特 别 创 建 了 一 个 系 统 数 据 库 如 果 确 实 添 加 了 系 统 数 据 库 它 会 出 现 在O D B C M ic ros oft A c c e s s 97 S e tu p 设 置 第 4 章 A D O 与 O D B C - 图339 对 话 框 的 Sy s te m D S N 系 统 DS N 第 4 章 A D O 与 O D B C - 图340 选项 卡 上

  2. 第 4 章 A D O 与 O D B C - 图341第 4 章 A D O 与 O D B C - 图342第 4 章 A D O 与 O D B C - 图343第 4 章 A D O 与 O D B C - 图344第 4 章 A D O 与 O D B C - 图345第 4 章 A D O 与 O D B C - 图346第 4 章 A D O 与 O D B C - 图347第 4 章 A D O 与 O D B C - 图348第 4 章 A D O 与 O D B C - 图349第 4 章 A D O 与 O D B C - 图350第 4 章 A D O 与 O D B C - 图351

    击 A dva nc e d 高 级 第 4 章 A D O 与 O D B C - 图352 按 钮 会 看 到 S e t A dva nc e d O p t ions 第 4 章 A D O 与 O D B C - 图353 设 置 高 级 选项 第 4 章 A D O 与 O D B C - 图354 对 话 框 如 下 图 所 示 无 需 对 很 多 项 做 修 改 但 是 要 把 客 户 名 添 加 到 L og in N a m e 注 册 名 第 4 章 A D O 与 O D B C - 图355 域 中 把 客 户 口 令 添 加 到 P a ssw o rd 口 令 域 中 这 允 许 客 户

第 4 章 A D O 与 O D B C - 图356第 4 章 A D O 与 O D B C - 图357第 4 章 A D O 与 O D B C - 图358第 4 章 A D O 与 O D B C - 图359第 4 章 A D O 与 O D B C - 图360第 4 章 A D O 与 O D B C - 图361第 4 章 A D O 与 O D B C - 图362第 4 章 A D O 与 O D B C - 图363第 4 章 A D O 与 O D B C - 图364第 4 章 A D O 与 O D B C - 图365第 4 章 A D O 与 O D B C - 图366第 4 章 A D O 与 O D B C - 图367第 4 章 A D O 与 O D B C - 图368第 4 章 A D O 与 O D B C - 图369第 4 章 A D O 与 O D B C - 图370在 访 问 你 的 数 据 库 时 根 本 不 用 了 解 访 问 的 细 节 甚 至 不 用 了 解 被 记 录 的 客户 名

技 巧 为 最 优 化 潜 在 的 区 域 可 以 浏 览 一 下 ODBC 驱 动 程 序 提 供 的 一 系 列 高级 选 项 例 如 Access ODBC 允 许 你 更 改 DBMS 所 用 的 线 程 数 量 缺省 设 置 3 通 常 提 供 了 不 错 的 性 能 但 是 你 会 发 现 复 杂 程 序 中 线 程 多一 些 的 话 可 以 提 高 前 台 任 务 的 速 度 由 于 Windows 使 用 了 一 些 处 理器 循 环 对 线 程 实 施 管 理 所 以 使 用 了 过 多 的 线 程 又 会 降 低 应 用 程 序 的速 度

  1. 第 4 章 A D O 与 O D B C - 图371设 置

    完 所 需 的 高 级 选 项 后 单 击 OK

  2. 第 4 章 A D O 与 O D B C - 图372第 4 章 A D O 与 O D B C - 图373第 4 章 A D O 与 O D B C - 图374第 4 章 A D O 与 O D B C - 图375第 4 章 A D O 与 O D B C - 图376第 4 章 A D O 与 O D B C - 图377第 4 章 A D O 与 O D B C - 图378第 4 章 A D O 与 O D B C - 图379第 4 章 A D O 与 O D B C - 图380第 4 章 A D O 与 O D B C - 图381第 4 章 A D O 与 O D B C - 图382第 4 章 A D O 与 O D B C - 图383第 4 章 A D O 与 O D B C - 图384

    次 单 击 OK 关 闭 O D B C M ic ros oft A c c e s s 97 S e tu p 设 置 第 4 章 A D O 与 O D B C - 图385 对 话 框 应该 看 到 新 的 设 置 项 已 经 添 加 到 ODB C D a ta S o u rc e A d m in is tra to r ODB C 数 据源 管 理 员 第 4 章 A D O 与 O D B C - 图386 对 话 框 中 如 果 今 后 要 为 数 据 库 更 改 这 些 设 置 只 要 简 单 地 加 亮 它并 单 击 C onfigure 配 置 第 4 章 A D O 与 O D B C - 图387 删 除 数 据 库 配 置 也 很 容 易 只 要 加 亮 DS N 并 单 击R e m o v e 删 除 第 4 章 A D O 与 O D B C - 图388 即 可

第 4 章 A D O 与 O D B C - 图389

创 建 系 统 DS N 和 制 作 用 户 DS N 差 不 多 两 者 间 一 个 显 著 的 差 别 是 使 用

第 4 章 A D O 与 O D B C - 图390第 4 章 A D O 与 O D B C - 图391第 4 章 A D O 与 O D B C - 图392第 4 章 A D O 与 O D B C - 图393第 4 章 A D O 与 O D B C - 图394第 4 章 A D O 与 O D B C - 图395第 4 章 A D O 与 O D B C - 图396它 们 的 目 的 不 同 系 统 DS N 告 诉 应 用 程 序 如 何 与 数 据 库 相 连 在 一 些 情 况 下 如何 与 之 交 互 作 用 系 统 DS N 不 包 含 数 据 库 所 需 的 任 何 数 据 它 包 含 连 接 标准 其 中 可 以 包 括 从 用 户 列 表 到 重 要 文 件 位 置 的 一 切 信 息

文 件 DSN

第 4 章 A D O 与 O D B C - 图397第 4 章 A D O 与 O D B C - 图398第 4 章 A D O 与 O D B C - 图399第 4 章 A D O 与 O D B C - 图400第 4 章 A D O 与 O D B C - 图401第 4 章 A D O 与 O D B C - 图402第 4 章 A D O 与 O D B C - 图403第 4 章 A D O 与 O D B C - 图404第 4 章 A D O 与 O D B C - 图405你 可 能 已 经 注 意 到 了 上 一 节 中 的 实 例 有 问 题 如 果 想 单 独 配 置 网 络 上 的每 一 台 机 器 它 会 工 作 得 很 好 但 这 可 能 不 是 一 个 好 主 意 还 有 一 种 存 储 创 建数 据 源 所 需 信 息 的 方 式 文 件 DS N 这 正 是 我 们 要 在 本 节 中 讨 论 的 下 面 的 过程 说 明 了 设 置 文 件 DS N 的 一 般 方 法

第 4 章 A D O 与 O D B C - 图406第 4 章 A D O 与 O D B C - 图407第 4 章 A D O 与 O D B C - 图408第 4 章 A D O 与 O D B C - 图409第 4 章 A D O 与 O D B C - 图410第 4 章 A D O 与 O D B C - 图411第 4 章 A D O 与 O D B C - 图412第 4 章 A D O 与 O D B C - 图413第 4 章 A D O 与 O D B C - 图4141 . 双 击 C on tro l P a ne l 控 制 面 板 第 4 章 A D O 与 O D B C - 图415 中 的 32 位 ODB C 小 程 序 会 看 到 ODB C D a ta S o u rc e A d m in is tra to r ODB C 数 据 源 管 理 员 第 4 章 A D O 与 O D B C - 图416 对 话 框 选 择 F ile D S N 文件 DS N 第 4 章 A D O 与 O D B C - 图417 选 项 卡 会 看 到 如 下 图 所 示 的 对 话 框 要 做 的 第 一 件 事 是 选 择 存 储DS N 信 息 的 地 方

第 4 章 A D O 与 O D B C - 图418

  1. 第 4 章 A D O 与 O D B C - 图419第 4 章 A D O 与 O D B C - 图420第 4 章 A D O 与 O D B C - 图421第 4 章 A D O 与 O D B C - 图422第 4 章 A D O 与 O D B C - 图423第 4 章 A D O 与 O D B C - 图424第 4 章 A D O 与 O D B C - 图425第 4 章 A D O 与 O D B C - 图426第 4 章 A D O 与 O D B C - 图427第 4 章 A D O 与 O D B C - 图428第 4 章 A D O 与 O D B C - 图429第 4 章 A D O 与 O D B C - 图430

    击 L ook In 观 察 第 4 章 A D O 与 O D B C - 图431 下 拉 列 表 框 会 看 到 一 系 列 当 前 机 器 的 目 录 和 驱 动器 可 以 为 DS N 使 用 任 何 存 储 位 置 我 通 常 在 网 络 上 选 择 数 据 库 存 储 目 录 使用 UNC 第 4 章 A D O 与 O D B C - 图432 通 用 命 名 标 准 第 4 章 A D O 与 O D B C - 图433 意 味 着 每 个 人 都 会 用 相 同 的 路 径 来 访 问 DS N 文 件

技 巧 Up One L evel 第 4 章 A D O 与 O D B C - 图434 上 一 级 第 4 章 A D O 与 O D B C - 图435 按 钮 第 4 章 A D O 与 O D B C - 图436 在 Look In 下 拉 列 表 框 旁 边 第 4 章 A D O 与 O D B C - 图437 的 工作 方 式 和 在 Explorer 中 是 一 样 的 可 以 用 该 按 钮 返 回 到 上 一 级 目 录最 后 你 会 在 My Computer 第 4 章 A D O 与 O D B C - 图438 我 的 电 脑 第 4 章 A D O 与 O D B C - 图439 处 结 束 看 到 机 器 上 所 有 驱动 器 的 清 单

  1. 第 4 章 A D O 与 O D B C - 图440第 4 章 A D O 与 O D B C - 图441第 4 章 A D O 与 O D B C - 图442第 4 章 A D O 与 O D B C - 图443

    击 A d d 添 加 第 4 章 A D O 与 O D B C - 图444 会 看 到 C reate N e w D a ta S o u rce 创 建 新 的 数 据 源 第 4 章 A D O 与 O D B C - 图445对 话 框

第 4 章 A D O 与 O D B C - 图446第 4 章 A D O 与 O D B C - 图447第 4 章 A D O 与 O D B C - 图448第 4 章 A D O 与 O D B C - 图449第 4 章 A D O 与 O D B C - 图450第 4 章 A D O 与 O D B C - 图451第 4 章 A D O 与 O D B C - 图452第 4 章 A D O 与 O D B C - 图453第 4 章 A D O 与 O D B C - 图454第 4 章 A D O 与 O D B C - 图455第 4 章 A D O 与 O D B C - 图456第 4 章 A D O 与 O D B C - 图457第 4 章 A D O 与 O D B C - 图458第 4 章 A D O 与 O D B C - 图459第 4 章 A D O 与 O D B C - 图460第 4 章 A D O 与 O D B C - 图461第 4 章 A D O 与 O D B C - 图462第 4 章 A D O 与 O D B C - 图463第 4 章 A D O 与 O D B C - 图464第 4 章 A D O 与 O D B C - 图4654 . 在 列 表 中 选 择 一 个 ODB C 驱 动 程 序 然 后 单 击 N e x t 下 一 个 第 4 章 A D O 与 O D B C - 图466 对 本示 例 来 说 我 再 次 选 择 A cce s s 你 会 看 到 C reate N e w D a ta S o u rce 创 建 新 的 数据 源 第 4 章 A D O 与 O D B C - 图467 对 话 框 的 下 一 页 显 示 出 来 在 这 里 选 择 数 据 源 的 名 称 和 存 储 位 置 单 击B ro w s e 浏 览 第 4 章 A D O 与 O D B C - 图468 会 看 到 F ile O p e n - ty p e 文 件 打 开 类 型 第 4 章 A D O 与 O D B C - 图469 对 话 框 在 这 里 选 择 存

  1. 单 击 N e x t 下 一 个

    第 4 章 A D O 与 O D B C - 图470 会 看 到 一 个 摘 要 对 话 框 如 下 图 所 示 它 说 明 正 准

第 4 章 A D O 与 O D B C - 图471第 4 章 A D O 与 O D B C - 图472备 创 建 的 DS N 的 参 数

  1. 单 击 F in is h 完 成

    第 4 章 A D O 与 O D B C - 图473 这 时 会 看 到 O D B C M ic ros oft A c c e s s 97 S e tu p 设置 第 4 章 A D O 与 O D B C - 图474 对 话 框 的 修 改 版 不 能 像 我 们 在 上 一 节 所 做 的 那 样 在 D a ta S o u rce N a m e数 据 源 名 第 4 章 A D O 与 O D B C - 图475 或 D e s c r ip tio n 描 述 第 4 章 A D O 与 O D B C - 图476 字 段 中 添 加 信 息 了 不 过 其 它 的 都 和 以

第 4 章 A D O 与 O D B C - 图477第 4 章 A D O 与 O D B C - 图478第 4 章 A D O 与 O D B C - 图479第 4 章 A D O 与 O D B C - 图480第 4 章 A D O 与 O D B C - 图481第 4 章 A D O 与 O D B C - 图482第 4 章 A D O 与 O D B C - 图483第 4 章 A D O 与 O D B C - 图484第 4 章 A D O 与 O D B C - 图485第 4 章 A D O 与 O D B C - 图486第 4 章 A D O 与 O D B C - 图487前 一 样

第 4 章 A D O 与 O D B C - 图488

  1. 第 4 章 A D O 与 O D B C - 图489第 4 章 A D O 与 O D B C - 图490第 4 章 A D O 与 O D B C - 图491第 4 章 A D O 与 O D B C - 图492第 4 章 A D O 与 O D B C - 图493第 4 章 A D O 与 O D B C - 图494第 4 章 A D O 与 O D B C - 图495第 4 章 A D O 与 O D B C - 图496第 4 章 A D O 与 O D B C - 图497

    定 要 单 击 Se le c t 选 择 第 4 章 A D O 与 O D B C - 图498 按 钮 输 入 数 据 库 的 名 称 然 后 选 择 想 要 使 用

的 数 据 库 如 果 想 创 建 一 个 新 数 据 库 也 可 以 单 击 C reate

创 建 第 4 章 A D O 与 O D B C - 图499 第 4 章 A D O 与 O D B C - 图500

8. 完 成 配 置 过 程 时 单 击 OK 你 会 在 ODB C D a ta S o u rc e

A d m in is tra to r

ODB C

数 据 源 管 理 员 第 4 章 A D O 与 O D B C - 图501 对 话 框 中 看 到 一 个 新 的 DS N 文 件 项

第 4 章 A D O 与 O D B C - 图502

第 4 章 A D O 与 O D B C - 图503第 4 章 A D O 与 O D B C - 图504第 4 章 A D O 与 O D B C - 图505第 4 章 A D O 与 O D B C - 图506第 4 章 A D O 与 O D B C - 图507第 4 章 A D O 与 O D B C - 图508第 4 章 A D O 与 O D B C - 图509第 4 章 A D O 与 O D B C - 图510第 4 章 A D O 与 O D B C - 图511第 4 章 A D O 与 O D B C - 图512第 4 章 A D O 与 O D B C - 图513第 4 章 A D O 与 O D B C - 图514第 4 章 A D O 与 O D B C - 图515和 我 们 创 建 的 前 一 个 DS N 不 同 这 个 D S N 实 际 上 创 建 可 以 用 文 本 编 辑 器来 查 看 和 编 辑 的 文 件 图 4 .1 显 示 了 我 的 文 件 的 外 观 请 注 意 它 符 合 标 准 的 IN I 文 件 格 式 你 可 以 在 顶 端 看 到 [ O D BC ] 标 题 下 面 是 我 选 择 的 全 部 设 置 这 个 文件 允 许 我 从 V is u a l C + + 选 择 数 据 源 而 机 器 间 的 传 输 也 是 非 常 容 易 的 我 甚 至能 在 安 装 过 程 中 按 要 求 更 改 位 置 在 你 不 知 道 用 户 会 有 什 么 样 的 设 置 时 这一 点 确 实 很 不 错

第 4 章 A D O 与 O D B C - 图516

图 4 .1 S A M P L E .D S N 文件 包含 了从 V is u a l C + + 内部 使用 我的 数据库 时所 需的 全部设 置

记 录 ODBC 事 务

第 4 章 A D O 与 O D B C - 图517第 4 章 A D O 与 O D B C - 图518第 4 章 A D O 与 O D B C - 图519第 4 章 A D O 与 O D B C - 图520调 试 应 用 程 序 时 加 以 记 录 这 一 点 很 重 要 OD B C D a ta S o u rc e A d m in is tra to r ODB C 数 据 源 管 理 员 第 4 章 A D O 与 O D B C - 图521 对 话 框 也 提 供 了 这 样 的 功 能 可 以 选 择 跟 踪 你 通 过

第 4 章 A D O 与 O D B C - 图522第 4 章 A D O 与 O D B C - 图523第 4 章 A D O 与 O D B C - 图524第 4 章 A D O 与 O D B C - 图525ODB C 对 数 据 库 进 行 的 各 种 事 务 当 然 这 些 记 录 可 能 会 变 得 相 当 大 但 我 们并 不 是 总 要 使 用 它 们

第 4 章 A D O 与 O D B C - 图526开 始 记 录 事 务 时 只 要 双 击 控 制 面 板 ( C on tro l P a ne l 第 4 章 A D O 与 O D B C - 图527 中 的 32 位 ODB C 小 程

第 4 章 A D O 与 O D B C - 图528第 4 章 A D O 与 O D B C - 图529第 4 章 A D O 与 O D B C - 图530第 4 章 A D O 与 O D B C - 图531第 4 章 A D O 与 O D B C - 图532第 4 章 A D O 与 O D B C - 图533第 4 章 A D O 与 O D B C - 图534第 4 章 A D O 与 O D B C - 图535第 4 章 A D O 与 O D B C - 图536第 4 章 A D O 与 O D B C - 图537第 4 章 A D O 与 O D B C - 图538第 4 章 A D O 与 O D B C - 图539第 4 章 A D O 与 O D B C - 图540第 4 章 A D O 与 O D B C - 图541第 4 章 A D O 与 O D B C - 图542第 4 章 A D O 与 O D B C - 图543第 4 章 A D O 与 O D B C - 图544第 4 章 A D O 与 O D B C - 图545第 4 章 A D O 与 O D B C - 图546第 4 章 A D O 与 O D B C - 图547第 4 章 A D O 与 O D B C - 图548第 4 章 A D O 与 O D B C - 图549序 打 开 ODB C D a ta S o u rc e A d m in is tra to r ODB C 数 据 源 管 理 员 第 4 章 A D O 与 O D B C - 图550 对 话 框 选择 T ra c in g 跟 踪 第 4 章 A D O 与 O D B C - 图551 选 项 卡 你 会 看 到 如 下 图 所 示 的 对 话 框 请 注 意 该 对 话 框的 W ind ow s 98 版 本 略 有 不 同 第 4 章 A D O 与 O D B C - 图552

第 4 章 A D O 与 O D B C - 图553

如 你 所 见 有 三 个 单 选 按 钮 确 定 何 时 跟 踪 OD B C 调 用 缺 省 设 置 是 D on 't T ra c e 不 跟 踪 第 4 章 A D O 与 O D B C - 图554 如 果 打 算 调 试 单 个 应 用 程 序 应 该 选 择 A ll th e T im e 全 部时 间 第 4 章 A D O 与 O D B C - 图555 O n e - T ime O n ly 只 一 次 第 4 章 A D O 与 O D B C - 图556 在 下 一 次 连 接 期 间 跟 踪 ODB C 调 用 — — 只要 连 接 一 拆 除 跟 踪 就 关 闭 当 用 户 带 着 特 定 的 问 题 调 用 时 这 是 一 个 不 错 的选 择 可 以 监 视 一 次 会 话 期 间 的 连 接 然 后 用 该 信 息 帮 助 创 建 排 除 错 误 的 计 划

第 4 章 A D O 与 O D B C - 图557第 4 章 A D O 与 O D B C - 图558第 4 章 A D O 与 O D B C - 图559第 4 章 A D O 与 O D B C - 图560第 4 章 A D O 与 O D B C - 图561第 4 章 A D O 与 O D B C - 图562第 4 章 A D O 与 O D B C - 图563跟 踪 不 会 自 动 开 始 还 要 单 击 对 话 框 右 侧 的 S tart T racin g N o w 现 在 开 始 跟踪 第 4 章 A D O 与 O D B C - 图564 只 要 跟 踪 一 开 始 按 钮 标 题 就 变 成 S top T ra c in g N o w 现 在 停 止 跟 踪 第 4 章 A D O 与 O D B C - 图565 再 次 单 击 按 钮 关 闭 跟 踪 过 程

第 4 章 A D O 与 O D B C - 图566第 4 章 A D O 与 O D B C - 图567第 4 章 A D O 与 O D B C - 图568第 4 章 A D O 与 O D B C - 图569第 4 章 A D O 与 O D B C - 图570第 4 章 A D O 与 O D B C - 图571第 4 章 A D O 与 O D B C - 图572第 4 章 A D O 与 O D B C - 图573第 4 章 A D O 与 O D B C - 图574唯 一 要 担 心 的 其 它 设 置 是 L o g F ile Pa th 记 录 文 件 路 径 第 4 章 A D O 与 O D B C - 图575 ODB C 通 常 在 根目 录 下 的 S Q L .LO G 文 件 中 放 入 事 务 信 息 但 是 也 可 以 将 该 信 息 放 在 网 络 驱动 器 上 或 者 用 户 看 不 到 的 地 方 在 调 试 过 程 中 缺 省 位 置 通 常 就 比 较 适 宜

注 释 除 非 你 想 创 建 自 己 的 日 志 记 录 D L L 否 则 不 要 更 改 Custom Trace DLL 第 4 章 A D O 与 O D B C - 图576自 定 义 跟 踪 DLL 第 4 章 A D O 与 O D B C - 图577 域 内 的 设 置 在 这 里 列 出 的 D L L — —

第 4 章 A D O 与 O D B C - 图578第 4 章 A D O 与 O D B C - 图579ODBCTRAC.D LL — — 负 责 维 持 事 务 记 录

  1. 2 AD O 和 OL E- DB — — 同 一 问 题 不 同 层 次 的 解 决 方 案

第 4 章 A D O 与 O D B C - 图580第 4 章 A D O 与 O D B C - 图581第 4 章 A D O 与 O D B C - 图582第 4 章 A D O 与 O D B C - 图583第 4 章 A D O 与 O D B C - 图584第 4 章 A D O 与 O D B C - 图585第 4 章 A D O 与 O D B C - 图586第 4 章 A D O 与 O D B C - 图587第 4 章 A D O 与 O D B C - 图588第 4 章 A D O 与 O D B C - 图589第 4 章 A D O 与 O D B C - 图590使 用 ADO 时 一 件 让 人 困 惑 的 事 是 需 要 理 解 它 不 是 数 据 库 访 问 的 底 层 解 决方 案 O LE - D B 是 使 用 ADO 的 基 础 它 也 提 供 与 数 据 库 通 信 的 基 础 ADO 只是 O LE - D B 提 供 的 服 务 的 漂 亮 包 装 事 实 上 如 果 你 愿 意 甚 至 可 以 绕 过 ADO 而 直 接 使 用 O LE - D B 但 是 使 用 ADO 开 发 应 用 程 序 的 速 度 要 快 得 多 下 面 的章 节 会 帮 助 你 理 解 O LE - D B 和 ADO

理 解 OLE-DB

第 4 章 A D O 与 O D B C - 图591第 4 章 A D O 与 O D B C - 图592第 4 章 A D O 与 O D B C - 图593第 4 章 A D O 与 O D B C - 图594第 4 章 A D O 与 O D B C - 图595那 么 O LE - D B 是 什 么 呢 顾 名 思 义 它 用 OL E 或 者 更 具 体 一 点 是 部

第 4 章 A D O 与 O D B C - 图596第 4 章 A D O 与 O D B C - 图597第 4 章 A D O 与 O D B C - 图598第 4 章 A D O 与 O D B C - 图599第 4 章 A D O 与 O D B C - 图600第 4 章 A D O 与 O D B C - 图601第 4 章 A D O 与 O D B C - 图602第 4 章 A D O 与 O D B C - 图603第 4 章 A D O 与 O D B C - 图604第 4 章 A D O 与 O D B C - 图605第 4 章 A D O 与 O D B C - 图606第 4 章 A D O 与 O D B C - 图607第 4 章 A D O 与 O D B C - 图608件 对 象 模 型 — — C O M 第 4 章 A D O 与 O D B C - 图609 为 数 据 访 问 提 供 一 套 接 口 就 像 任 何 其 它 的 CO M 对 象一 样 可 以 查 询 创 建 和 撤 销 一 个 O LE - D B 对 象 O LE - D B 对 象 的 来 源 被 称 为提 供 者 你 会 得 到 各 种 O LE - D B 提 供 者 它 们 是 V is u a l C + + 软 件 包 的 一 部 分 也 有 可 能 在 厂 商 升 级 其 数 据 库 产 品 时 提 供 O LE - D B 的 好 处 是 同 一 个 提 供 者可 以 和 任 何 V is u a l S tud io 产 品 协 作 V is u a l C + + V isu a l B a sic V is u a l In te rD e v 和 V isu a l J+ +

第 4 章 A D O 与 O D B C - 图610第 4 章 A D O 与 O D B C - 图611第 4 章 A D O 与 O D B C - 图612第 4 章 A D O 与 O D B C - 图613第 4 章 A D O 与 O D B C - 图614第 4 章 A D O 与 O D B C - 图615第 4 章 A D O 与 O D B C - 图616O LE - D B 还 依 赖 于 事 件 这 和 任 何 CO M 对 象 一 样 这 些 事 件 说 明 什 么 时 候要 求 更 新 数 据 库 表 以 显 示 其 它 用 户 生 成 的 新 项 或 者 你 所 请 求 的 表 什 么 时 候准 备 好 供 查 看 还 会 看 到 这 样 的 事 件 它 们 用 来 发 送 信 号 通 知 各 种 数 据 库 错 误和 其 它 要 求 马 上 轮 询 的 活 动

第 4 章 A D O 与 O D B C - 图617第 4 章 A D O 与 O D B C - 图618第 4 章 A D O 与 O D B C - 图619M ic ros oft 定 义 了 O LE - D B 用 户 的 四 个 主 要 类 型 下 面 将 各 组 予 以 分 解 从总 体 上 说 明 它 们 是 如 何 帮 助 使 用 O LE - D B 的

  • 第 4 章 A D O 与 O D B C - 图620第 4 章 A D O 与 O D B C - 图621第 4 章 A D O 与 O D B C - 图622第 4 章 A D O 与 O D B C - 图623第 4 章 A D O 与 O D B C - 图624

    据 提 供 者 用 O LE - D B S D K 软 件 开 发 工 具 箱 创 建 O LE - D B 提 供者 的 人 提 供 者 用 户 与 数 据 库 和 事 件 交 互 作 用 发 信 号 通 知 特 殊 事 情 的发 生

  • 第 4 章 A D O 与 O D B C - 图625第 4 章 A D O 与 O D B C - 图626

    据 消 费 者 要 求 访 问 包 含 在 数 据 库 中 的 信 息 的 应 用 程 序 系 统 驱 动 程序 或 用 户

  • 第 4 章 A D O 与 O D B C - 图627第 4 章 A D O 与 O D B C - 图628第 4 章 A D O 与 O D B C - 图629第 4 章 A D O 与 O D B C - 图630第 4 章 A D O 与 O D B C - 图631第 4 章 A D O 与 O D B C - 图632

    据 服 务 提 供 者 创 建 用 以 增 强 用 户 或 管 理 员 使 用 或 管 理 数 据 库 内 容 能力 的 独 立 实 用 程 序 第 4 章 A D O 与 O D B C - 图633 服 务 第 4 章 A D O 与 O D B C - 图634 的 开 发 者 例 如 开 发 者 可 以 创 建 查 询 引 擎允 许 用 户 用 自 然 语 言 请 求 数 据 库 中 的 信 息 服 务 和 O LE - D B 提 供 者 互 相协 作 成 为 一 个 整 体

  • 第 4 章 A D O 与 O D B C - 图635第 4 章 A D O 与 O D B C - 图636第 4 章 A D O 与 O D B C - 图637第 4 章 A D O 与 O D B C - 图638第 4 章 A D O 与 O D B C - 图639

    务 部 件 开 发 者 创 建 应 用 程 序 模 块 或 部 件 以 减 少 创 建 数 据 库 应 用 程序 所 需 的 编 码 量 的 开 发 者 部 件 可 能 和 网 格 控 件 一 样 通 用 可 以 快 速 地显 示 数 据 库 中 记 录 的 子 集 或 者 显 示 正 被 访 问 的 数 据 库 类 型 的 专 用 信息

第 4 章 A D O 与 O D B C - 图640第 4 章 A D O 与 O D B C - 图641第 4 章 A D O 与 O D B C - 图642第 4 章 A D O 与 O D B C - 图643第 4 章 A D O 与 O D B C - 图644第 4 章 A D O 与 O D B C - 图645第 4 章 A D O 与 O D B C - 图646那 么 O LE - D B 和 OD B C 有 什 么 不 同 呢 表 4 .1 说 明 了 这 两 个 产 品 间 的 主要 差 别 我 们 会 在 本 章 的 应 该 在 什 么 时 候 使 用 O LE

  • D B ADO 或 ODB C

第 4 章 A D O 与 O D B C - 图647— 节 中 讨 论 这 些 差 别 是 如 何 影 响 你 的 使 用 决 定 的

第 4 章 A D O 与 O D B C - 图648第 4 章 A D O 与 O D B C - 图649第 4 章 A D O 与 O D B C - 图650第 4 章 A D O 与 O D B C - 图651第 4 章 A D O 与 O D B C - 图652第 4 章 A D O 与 O D B C - 图653第 4 章 A D O 与 O D B C - 图654第 4 章 A D O 与 O D B C - 图655第 4 章 A D O 与 O D B C - 图656第 4 章 A D O 与 O D B C - 图657第 4 章 A D O 与 O D B C - 图658第 4 章 A D O 与 O D B C - 图659第 4 章 A D O 与 O D B C - 图660第 4 章 A D O 与 O D B C - 图661第 4 章 A D O 与 O D B C - 图662不 要 认 为 O LE - D B 和 OD B C 是 两 种 完 全 分 离 可 以 互 相 替 换 的 技 术 ODB C O LE - D B 提 供 者 允 许 你 通 过 O LE - D B 或 ADO 访 问 OD B C 提 供 的 所 有 功 能 换言 之 这 两 种 技 术 是 互 补 的 不 能 完 全 互 相 替 换 可 以 用 ADO 或 O LE - D B 替换 ODB C 吗 可 以 但 如 果 这 样 做 了 将 得 不 到 最 佳 的 应 用 程 序 性 能 O LE - D B 的 整 体 作 用 是 拓 宽 可 以 用 V is u a l C + + 应 用 程 序 访 问 的 数 据 库 类 型 的 范 围 很明 显 如 果 确 实 要 用 单 个 应 用 程 序 访 问 ODB C 和 列 表 数 据 那 么 O LE - D B 为 此提 供 了 较 好 的 解 决 办 法

理 解 ADO

第 4 章 A D O 与 O D B C - 图663第 4 章 A D O 与 O D B C - 图664第 4 章 A D O 与 O D B C - 图665现 在 你 对 O LE - D B 比 较 熟 悉 了 那 么 AD O 适 合 在 哪 里 使 用 呢 如 前 所 述

第 4 章 A D O 与 O D B C - 图666第 4 章 A D O 与 O D B C - 图667第 4 章 A D O 与 O D B C - 图668第 4 章 A D O 与 O D B C - 图669第 4 章 A D O 与 O D B C - 图670第 4 章 A D O 与 O D B C - 图671ADO 为 访 问 O LE - D B 提 供 者 的 功 能 提 供 了 一 种 容 易 的 方 法 换 言 之 ADO 允许 你 快 速 地 创 建 应 用 程 序 允 许 V is u a l C + + 处 理 你 在 直 接 使 用 O LE - D B 时 通 常应 考 虑 的 一 些 细 节 我 已 经 在 第 一 章 关 于 ADO 数 据 连 接 的 章 节 中 提 供 了 关 于ADO 特 征 的 概 述 这 里 就 不 再 讨 论 了

第 4 章 A D O 与 O D B C - 图672第 4 章 A D O 与 O D B C - 图673第 4 章 A D O 与 O D B C - 图674第 4 章 A D O 与 O D B C - 图675第 4 章 A D O 与 O D B C - 图676表 4. 1 OL E- DB 与 O DBC 的技术比 较

元素

OLE -D E

ODB C

描述

A ccess 类型

部件

直接

O LE - D B 提 供 与 数 据 交 互 作 用 的 接 口 用

户访问数 据要通过被设 计成与 O LE - D B 交互作用的 部件来完成

数 据 访 问特殊化

任 何 列 表 数据

SQ L

ODB C 总 被 设 计 成 把 SQ L 用 作 数 据 事 务的 基 础 在 一 些 情 况 下 这 意 味 着 程 序 员

必须做出 让步 强制数 据符合 SQ L 标准

驱 动 程 序访问方法

部件

本机

如前所述 所有对 O LE - D B 提供者的 访问都 要 通 过 使 用 各 种 类 型 部 件 的 CO M 接口 ODB C 通常要求 某类直接程序 设计且 特 别 依 赖 数 据 库 厂 商 所 提 供 的 SQ L 兼容性等级

程 序 设 计模型

CO M

C

O LE - D B 依赖于 CO M 向程序员 提供的对提供者的 访问 这意味 着 O LE - D B 是语言无关的 而 ODB C 则使用专 用语言

技术标准

CO M

S Q L

O LE - D B 坚持 M ic ro s o f t 的 CO M 标准 这意 味 着 厂 商 和 专 用 平 台 要 比 ODB C 所 使

用的 SQ L 技术标准 多得多

第 4 章 A D O 与 O D B C - 图677第 4 章 A D O 与 O D B C - 图678第 4 章 A D O 与 O D B C - 图679第 4 章 A D O 与 O D B C - 图680第 4 章 A D O 与 O D B C - 图681第 4 章 A D O 与 O D B C - 图682第 4 章 A D O 与 O D B C - 图683第 4 章 A D O 与 O D B C - 图684第 4 章 A D O 与 O D B C - 图685第 4 章 A D O 与 O D B C - 图686与 O LE - D B 一 样 AD O 也 是 基 于 CO M 的 它 提 供 了 一 个 双 重 接 口 对 本地 操 作 是 ADODB 的 程 序 ID 对 远 程 操 作 是 AD OR 的 程 序 ID 虽 然 注 册 表 像

第 4 章 A D O 与 O D B C - 图687第 4 章 A D O 与 O D B C - 图688第 4 章 A D O 与 O D B C - 图689第 4 章 A D O 与 O D B C - 图690第 4 章 A D O 与 O D B C - 图691第 4 章 A D O 与 O D B C - 图692第 4 章 A D O 与 O D B C - 图693第 4 章 A D O 与 O D B C - 图694第 4 章 A D O 与 O D B C - 图695第 4 章 A D O 与 O D B C - 图696第 4 章 A D O 与 O D B C - 图697第 4 章 A D O 与 O D B C - 图698使 用 分 室 线 程 模 型 那 样 显 示 ADO 线 程 但 AD O 库 本 身 是 种 自 由 线 程 ADO 的 线 程 安 全 依 赖 于 你 所 使 用 的 O LE - D B 提 供 者 换 言 之 如 果 使 用 M ic ros oft 的ODB C OL E - D B 提 供 者 不 会 有 任 何 问 题 如 果 使 用 第 三 方 的 O LE - D B 提 供 者 要 在 假 定 ADO 线 程 安 全 之 前 检 查 厂 商 的 文 档 这 是 在 In te rn e t 或 企 业 网 连 接 上使 用 ADO 时 的 要 求 第 4 章 A D O 与 O D B C - 图699

第 4 章 A D O 与 O D B C - 图700第 4 章 A D O 与 O D B C - 图701第 4 章 A D O 与 O D B C - 图702第 4 章 A D O 与 O D B C - 图703第 4 章 A D O 与 O D B C - 图704第 4 章 A D O 与 O D B C - 图705第 4 章 A D O 与 O D B C - 图706第 4 章 A D O 与 O D B C - 图707第 4 章 A D O 与 O D B C - 图708使 用 ADO 时 会 用 到 七 个 不 同 的 对 象 表 4 .2 列 出 了 这 些 对 象 并 描 述 了 它们 的 使 用 方 法 虽 然 ADO 对 象 的 功 能 层 次 要 比 先 前 技 术 提 供 的 层 次 高 得 多 但 其 中 多 数 对 象 类 型 是 M ic ros oft 已 引 进 的 其 它 技 术 的 复 制 品 我 们 会 在 本 章 的概 述 一 节 更 为 详 细 地 讨 论 ADO 的 类

注 释 一 些 A D O 对 象 由 接 口 而 不 是 由 实 际 类 来 表 示 表 4 . 2 还 说 明 了 对 象的 关 联 关 系 它 帮 助 你 理 解 如 何 导 出 并 非 由 Visual C++ 类 直 接 表 示的 对 象

第 4 章 A D O 与 O D B C - 图709第 4 章 A D O 与 O D B C - 图710第 4 章 A D O 与 O D B C - 图711表 4.2 AD O 对象概述

对象

描 述

C o mm a n d

C A DOC o m m a n d

命 令 对 象 使 用 连 接 或 记 录 集 对 象 执 行 任 务 即 使 可

以 把 执 行 命 令 作 为 连 接 或 记 录 集 对 象 的 一 部 分 命令对象也 要灵活得多 而且允许定义 输出参数

C o n n e c tio n

C A D O C o n n e c tio n

定义与 O LE - D B 提供者的 连接 可以用 这个对象来执 行 任 务 如 开 始 提 交 和 回 滚 事 务 它 还 提 供 了 打

开或关闭 连接以及执行 命令的方法

第 4 章 A D O 与 O D B C - 图712第 4 章 A D O 与 O D B C - 图713第 4 章 A D O 与 O D B C - 图714第 4 章 A D O 与 O D B C - 图715第 4 章 A D O 与 O D B C - 图716第 4 章 A D O 与 O D B C - 图717第 4 章 A D O 与 O D B C - 图718第 4 章 A D O 与 O D B C - 图719第 4 章 A D O 与 O D B C - 图720第 4 章 A D O 与 O D B C - 图721第 4 章 A D O 与 O D B C - 图722续 表

E rro r

错 误 对 象 作 为 连 接 对 象 的 一 部 分 而 创 建 它 提 供 关于 O LE - D B 提供者引 起的错误的额 外信息 单个 错误 对 象 可 以 包 含 多 个 错 误 的 信 息 每 个 错 误 对 象 都

与特定的 事件相关 如 提交事务

F ie ld

字 段 对 象 包 含 记 录 集 对 象 内 的 单 列 数 据 换 言 之

字 段 可 以 被 视 为 表 中 的 一 列 它 包 含 了 某 类 与 记 录集相关的 所有记录的数 据

P a ra m e te r

C A D O P aram eter

为 命 令 对 象 定 义 单 个 参 数 参 数 修 改 存 储 过 程 或查 询 的 结 果 参 数 对 象 提 供 输 入 输 出 或 同 时 提供输入输 出

P ro p e r ty

某些 O LE - D B 提供者需 要扩充标准的 ADO 对 象 属 性 对 象 代 表 了 完 成 这 一 任 务 的 一 条 途 径 属 性 对象包含属 性 名称 类 型以及值信息

R e c o rd s e t

CA D O R e c o rd s e t

它 包 含 了 返 回 表 中 对 所 选 独 立 元 素 查 询 和 光 标 的 返回 结 果 V is u a l C + + 让 你 选 择 用 单 个 记 录 集 对 象 创建 连 接 和 记 录 集 或 者 用 现 有 的 连 接 对 象 支 持 多 个

记录集对 象

第 4 章 A D O 与 O D B C - 图723第 4 章 A D O 与 O D B C - 图724第 4 章 A D O 与 O D B C - 图725第 4 章 A D O 与 O D B C - 图726第 4 章 A D O 与 O D B C - 图727第 4 章 A D O 与 O D B C - 图728第 4 章 A D O 与 O D B C - 图7294. 3 什 么 时 候 应 该 使 用 OL E- DB AD O 或 OD BC

第 4 章 A D O 与 O D B C - 图730第 4 章 A D O 与 O D B C - 图731要 在 访 问 数 据 时 判 断 出 应 该 使 用 哪 一 种 技 术 这 并 不 容 易 可 能 需 要 公 用

第 4 章 A D O 与 O D B C - 图732第 4 章 A D O 与 O D B C - 图733第 4 章 A D O 与 O D B C - 图734第 4 章 A D O 与 O D B C - 图735第 4 章 A D O 与 O D B C - 图736第 4 章 A D O 与 O D B C - 图737第 4 章 A D O 与 O D B C - 图738第 4 章 A D O 与 O D B C - 图739第 4 章 A D O 与 O D B C - 图740第 4 章 A D O 与 O D B C - 图741实 用 程 序 来 处 理 多 个 数 据 库 类 型 部 分 数 据 可 能 出 现 在 本 地 硬 盘 驱 动 器 上 部分 在 网 络 上 还 有 一 部 分 在 主 机 上 甚 至 客 户 安 装 在 设 备 上 的 产 品 也 会 使 这 种选 择 更 加 困 难 例 如 你 所 期 待 的 ODB C 支 持 级 别 也 许 依 赖 于 所 安 装 的 M ic ros oft O ffic e 的 版 本 因 为 这 个 产 品 不 提 供 ODB C 支 持 你 还 会 发 现 ADO 类 提 供 的对 象 和 方 法 要 比 ODB C 类 多 AD O 可 以 提 供 程 序 中 绝 对 必 须 具 有 的 一 些 特 性

  • 第 4 章 A D O 与 O D B C - 图742第 4 章 A D O 与 O D B C - 图743

    例 如 你 会 发 现 O LE - D B 和 ADO 两 者 都 支 持 D F X _ C u r re n c y 但 在 ODB C

第 4 章 A D O 与 O D B C - 图744中 没 有 对 应 的 功 能 — — 但 你 要 想 掌 握 它 们 也 必 须 付 出 一 定 的 努 力

第 4 章 A D O 与 O D B C - 图745第 4 章 A D O 与 O D B C - 图746注 使 用 ADO 而 不 是 ODBC 的 一 个 原 因 是 A D O 提 供 的 对 象 和 方 法 比 ODBC 多

第 4 章 A D O 与 O D B C - 图747第 4 章 A D O 与 O D B C - 图748第 4 章 A D O 与 O D B C - 图749第 4 章 A D O 与 O D B C - 图750第 4 章 A D O 与 O D B C - 图751第 4 章 A D O 与 O D B C - 图752选 择 O LE - D B 或 OD B C 时 有 几 条 一 般 的 规 则 因 为 ADO 实 际 上 只 是O LE - D B 的 包 装 所 以 这 些 规 则 也 适 用 于 它 下 面 提 供 一 些 基 本 的 原 则 可 以用 来 帮 助 你 决 定 选 择 O LE - D B 还 是 ODB C

  • 第 4 章 A D O 与 O D B C - 图753

    OLE 环 境 如 果 要 访 问 支 持 ODB C 的 数 据 库 而 该 数 据 库 又 在 不 支 持

第 4 章 A D O 与 O D B C - 图754第 4 章 A D O 与 O D B C - 图755OL E 的 服 务 器 上 那 么 ODB C 是 最 好 的 选 择

  • 第 4 章 A D O 与 O D B C - 图756第 4 章 A D O 与 O D B C - 图757

    SQL 环 境 ODB C 在 处 理 SQ L 时 非 常 出 众 处 理 非 SQ L 数 据 库 时

第 4 章 A D O 与 O D B C - 图758O LE - D B 则 具 有 非 常 明 显 的 优 势

  • 第 4 章 A D O 与 O D B C - 图759第 4 章 A D O 与 O D B C - 图760第 4 章 A D O 与 O D B C - 图761第 4 章 A D O 与 O D B C - 图762第 4 章 A D O 与 O D B C - 图763第 4 章 A D O 与 O D B C - 图764OLE

    环 境 对 支 持 OL E 的 服 务 器 来 说 选 择 O LE - D B 还 是 ODB C 也 许是 希 望 各 半 如 果 有 ODB C 驱 动 程 序 可 供 利 用 那 么 使 用 ODB C 是 一个 好 主 意 否 则 就 只 有 选 择 O LE - D B 了

  • 第 4 章 A D O 与 O D B C - 图765所 需

    的 互 操 作 性 如 果 需 要 可 互 操 作 的 数 据 库 部 件 那 么 只 有 选 择

第 4 章 A D O 与 O D B C - 图766O LE - D B

第 4 章 A D O 与 O D B C - 图767其 它 的 问 题 往 往 是 复 合 问 题 或 者 至 少 是 失 去 了 可 以 用 来 区 别 这 两 种 技 术

第 4 章 A D O 与 O D B C - 图768第 4 章 A D O 与 O D B C - 图769第 4 章 A D O 与 O D B C - 图770第 4 章 A D O 与 O D B C - 图771第 4 章 A D O 与 O D B C - 图772第 4 章 A D O 与 O D B C - 图773第 4 章 A D O 与 O D B C - 图774第 4 章 A D O 与 O D B C - 图775第 4 章 A D O 与 O D B C - 图776第 4 章 A D O 与 O D B C - 图777第 4 章 A D O 与 O D B C - 图778第 4 章 A D O 与 O D B C - 图779的 方 便 的 规 则 例 如 有 一 些 特 征 是 ADO 和 OD B C 所 共 有 的 其 中 一 个 特 征是 V is u a l C + + 允 许 你 直 接 访 问 任 一 种 技 术 这 意 味 着 可 以 完 全 访 问 ADO 和ODB C 都 提 供 的 每 一 个 特 征 是 的 这 确 实 不 错 但 也 有 缺 陷 因 为 谈 到 访 问不 能 说 一 种 技 术 明 显 地 优 于 另 一 种 技 术 第 4 章 A D O 与 O D B C - 图780

第 4 章 A D O 与 O D B C - 图781第 4 章 A D O 与 O D B C - 图782第 4 章 A D O 与 O D B C - 图783第 4 章 A D O 与 O D B C - 图784第 4 章 A D O 与 O D B C - 图785第 4 章 A D O 与 O D B C - 图786第 4 章 A D O 与 O D B C - 图787第 4 章 A D O 与 O D B C - 图788第 4 章 A D O 与 O D B C - 图789第 4 章 A D O 与 O D B C - 图790如 果 做 了 错 误 的 决 定 一 些 熟 悉 的 技 术 实 际 上 会 帮 助 你 把 应 用 程 序 从 ODB C 转 移 到 ADO 或 反 方 向 转 移 两 种 技 术 都 依 靠 数 据 库 对 象 来 管 理 基 础 的 DB M S 而 记 录 集 对 象 则 包 含 针 对 DB M S 的 查 询 结 果 另 外 OD B C 和 ADO 都 以 相 似的 成 员 来 使 用 数 据 库 和 记 录 集 对 象 即 使 要 对 类 和 成 员 名 称 做 一 些 更 改 你 仍会 发 现 ODB C 和 AD O 程 序 设 计 的 代 码 非 常 相 似

第 4 章 A D O 与 O D B C - 图791第 4 章 A D O 与 O D B C - 图792第 4 章 A D O 与 O D B C - 图793第 4 章 A D O 与 O D B C - 图794第 4 章 A D O 与 O D B C - 图795第 4 章 A D O 与 O D B C - 图796第 4 章 A D O 与 O D B C - 图797第 4 章 A D O 与 O D B C - 图798第 4 章 A D O 与 O D B C - 图799第 4 章 A D O 与 O D B C - 图800第 4 章 A D O 与 O D B C - 图801第 4 章 A D O 与 O D B C - 图802第 4 章 A D O 与 O D B C - 图803ODB C 和 AD O 都 依 靠 外 部 驱 动 程 序 来 完 成 任 务 但 是 用 ADO 还 可 以 从M ic ros oft J e t 引 擎 获 得 额 外 的 帮 助 这 个 额 外 的 支 持 是 如 何 使 程 序 设 计 更 加 容 易的 呢 考 虑 一 下 要 在 哪 里 执 行 两 个 依 赖 不 同 引 擎 的 数 据 库 的 外 部 连 接 在ODB C 下 必 须 人 工 执 行 全 部 所 需 的 设 置 使 用 AD O 意 味 着 M ic ros oft J e t 引擎 会 为 你 执 行 这 些 设 置 可 惜 的 是 让 ADO 做 这 个 工 作 意 味 着 会 失 去 控 制 级别 和 一 些 灵 活 性 而 这 正 是 你 从 一 开 始 就 想 用 C+ + 获 取 数 据 的 原 因

第 4 章 A D O 与 O D B C - 图804第 4 章 A D O 与 O D B C - 图805第 4 章 A D O 与 O D B C - 图806注 ODBC 和 ADO 具 有 相 似 的 特 征 如 记 录 集 和 数 据 库 对 象 尽 管 M F C 利 用这 些 对 象 的 方 式 完 全 不 同

第 4 章 A D O 与 O D B C - 图807第 4 章 A D O 与 O D B C - 图808第 4 章 A D O 与 O D B C - 图809第 4 章 A D O 与 O D B C - 图810第 4 章 A D O 与 O D B C - 图811第 4 章 A D O 与 O D B C - 图812第 4 章 A D O 与 O D B C - 图813第 4 章 A D O 与 O D B C - 图814第 4 章 A D O 与 O D B C - 图815第 4 章 A D O 与 O D B C - 图816第 4 章 A D O 与 O D B C - 图817有 一 个 地 方 绝 对 不 能 使 用 AD O 如 果 要 访 问 16 位 数 据 就 不 能 用 ADO 不 管 你 怎 么 想 都 必 须 用 ODB C 然 而 几 乎 没 有 人 还 在 使 用 16 位 数 据 库 了 大 多 数 的 新 工 程 都 会 使 用 32 位 接 口 这 意 味 着 会 有 一 个 选 择 老 的 工 程 已 经 有了 嵌 入 代 码 的 数 据 访 问 方 法 所 以 你 也 实 在 没 有 必 要 在 这 里 做 决 定

第 4 章 A D O 与 O D B C - 图818第 4 章 A D O 与 O D B C - 图819第 4 章 A D O 与 O D B C - 图820第 4 章 A D O 与 O D B C - 图821第 4 章 A D O 与 O D B C - 图822第 4 章 A D O 与 O D B C - 图823第 4 章 A D O 与 O D B C - 图824第 4 章 A D O 与 O D B C - 图825第 4 章 A D O 与 O D B C - 图826第 4 章 A D O 与 O D B C - 图827第 4 章 A D O 与 O D B C - 图828第 4 章 A D O 与 O D B C - 图829第 4 章 A D O 与 O D B C - 图830ODB C 的 一 点 不 足 是 不 能 像 以 前 使 用 AD O 那 样 跟 踪 事 务 以 M ic ros oft J e t 引 擎 使 用 ADO 时 应 该 得 到 事 务 的 工 作 区 级 的 支 持 ODB C 只 提 供 数 据 库 级的 事 务 支 持 这 就 是 说 可 以 从 几 个 不 同 的 工 作 区 跟 踪 事 务 第 4 章 A D O 与 O D B C - 图831 这 使 得 调 试 非 常困 难 还 可 能 导 致 其 它 类 型 的 问 题 第 4 章 A D O 与 O D B C - 图832

注 释 处 理 ODBC 数 据 库 时 A D O 提 供 数 据 库 级 的 支 持 这 和 ODBC 提 供 的支 持 层 次 是 相 同 的 除 非 你 使 用 Microsoft Jet 引 擎 否 则 得 不 到 工作 区 级 事 务 支 持 的 好 处

第 4 章 A D O 与 O D B C - 图8334 Vi su al C ++ OD BC OL E- DB 及 AD O 类 概 述

第 4 章 A D O 与 O D B C - 图834第 4 章 A D O 与 O D B C - 图835第 4 章 A D O 与 O D B C - 图836第 4 章 A D O 与 O D B C - 图837第 4 章 A D O 与 O D B C - 图838第 4 章 A D O 与 O D B C - 图839第 4 章 A D O 与 O D B C - 图840第 4 章 A D O 与 O D B C - 图841用 C+ + 创 建 数 据 库 应 用 程 序 的 讨 论 终 于 涉 及 到 了 类 为 了 进 行 实 际 的 工 作你 需 要 了 解 类 每 个 类 都 执 行 非 常 特 殊 的 任 务 所 以 知 道 在 哪 里 使 用 哪 一 个类 至 关 重 要 所 有 类 的 总 目 标 都 是 从 服 务 器 获 得 特 定 的 数 据 并 在 屏 幕 或 打 印机 上 显 示 出 来

第 4 章 A D O 与 O D B C - 图842注 这 确 实 可 以 帮 助 你 把 数 据 库 对 象 看 作 是 将 数 据 从 数 据 源 装 入 你 的 计 算机 的 一 种 管 道

第 4 章 A D O 与 O D B C - 图843第 4 章 A D O 与 O D B C - 图844第 4 章 A D O 与 O D B C - 图845第 4 章 A D O 与 O D B C - 图846第 4 章 A D O 与 O D B C - 图847我 们 要 了 解 的 第 一 个 类 是 C d ata b as e( O D B C ) 或 C A D O C o n n e c tio n ( ADO) 用这 些 类 创 建 的 对 象 让 你 得 到 对 数 据 库 内 数 据 的 访 问 既 可 以 创 建 指 向 特 定 记 录的 指 针 也 可 以 下 载 整 个 查 询 数 据 库 对 象 创 建 你 需 要 的 连 接 获 得 的 数 据 访问 的 类 型 依 赖 于 是 创 建 了 窗 体 视 图 第 4 章 A D O 与 O D B C - 图848 所 有 数 据 的 单 记 录 显 示 第 4 章 A D O 与 O D B C - 图849 还 是 记 录 视 图 第 4 章 A D O 与 O D B C - 图850

第 4 章 A D O 与 O D B C - 图851特 定 标 准 相 匹 配 的 所 有 记 录 的 网 格 显 示 第 4 章 A D O 与 O D B C - 图852

第 4 章 A D O 与 O D B C - 图853第 4 章 A D O 与 O D B C - 图854— 旦 连 接 了 数 据 库 就 要 有 某 种 容 器 来 保 存 它 所 包 含 的 内 容

第 4 章 A D O 与 O D B C - 图855第 4 章 A D O 与 O D B C - 图856第 4 章 A D O 与 O D B C - 图857第 4 章 A D O 与 O D B C - 图858第 4 章 A D O 与 O D B C - 图859CR e c o rd s e t( O D BC ) 和 C ADOR e c o rd s e t( ADO ) 类 在 这 里 发 挥 作 用 记 录 集 保 存 最终 要 在 屏 幕 上 显 示 的 数 据 这 有 助 于 把 记 录 集 看 作 是 保 存 数 据 库 中 数 据 的 容 器如 下 所 述 有 三 种 类 型 的 记 录 集

  • 第 4 章 A D O 与 O D B C - 图860第 4 章 A D O 与 O D B C - 图861第 4 章 A D O 与 O D B C - 图862第 4 章 A D O 与 O D B C - 图863

    表 型 记 录 集 代 表 了 数 据 库 某 个 表 内 的 数 据 你 可 以 对 这 样 的 单 个 表进 行 任 何 处 理 包 括 添 加 删 除 或 编 辑 记 录

  • 第 4 章 A D O 与 O D B C - 图864第 4 章 A D O 与 O D B C - 图865第 4 章 A D O 与 O D B C - 图866第 4 章 A D O 与 O D B C - 图867第 4 章 A D O 与 O D B C - 图868

    态 集 需 要 用 查 询 从 数 据 库 的 一 个 或 多 个 表 中 提 取 信 息 时 会 用 到 动态 集 型 记 录 集 与 表 型 记 录 集 一 样 可 以 添 加 删 除 或 编 辑 动 态 集 型 记录 集 中 的 记 录

  • 第 4 章 A D O 与 O D B C - 图869第 4 章 A D O 与 O D B C - 图870第 4 章 A D O 与 O D B C - 图871第 4 章 A D O 与 O D B C - 图872第 4 章 A D O 与 O D B C - 图873第 4 章 A D O 与 O D B C - 图874第 4 章 A D O 与 O D B C - 图875

    照 这 是 数 据 库 一 个 或 多 个 表 中 所 包 含 的 数 据 的 静 态 拷 贝 与 动 态 集一 样 要 通 过 查 询 来 提 取 信 息 与 动 态 集 不 一 样 的 是 你 不 能 修 改 快 照中 记 录 的 内 容 但 是 可 以 用 快 照 型 记 录 集 查 找 数 据 或 产 生 报 告

第 4 章 A D O 与 O D B C - 图876第 4 章 A D O 与 O D B C - 图877第 4 章 A D O 与 O D B C - 图878第 4 章 A D O 与 O D B C - 图879第 4 章 A D O 与 O D B C - 图880第 4 章 A D O 与 O D B C - 图881第 4 章 A D O 与 O D B C - 图882第 4 章 A D O 与 O D B C - 图883第 4 章 A D O 与 O D B C - 图884第 4 章 A D O 与 O D B C - 图885第 4 章 A D O 与 O D B C - 图886第 4 章 A D O 与 O D B C - 图887第 4 章 A D O 与 O D B C - 图888第 4 章 A D O 与 O D B C - 图889第 4 章 A D O 与 O D B C - 图890你 可 能 已 经 注 意 到 了 我 在 谈 论 记 录 集 时 提 到 了 术 语 查 询 查 询 就 是一 个 简 单 的 提 问 查 询 时 所 做 的 一 切 工 作 就 是 要 求 数 据 库 提 供 一 批 符 合 特 定 标准 的 记 录 使 用 ODB C 时 要 依 靠 CR e c o rd s e t 类 数 据 成 员 来 更 改 想 要 看 的 记 录的 查 询 ADO 有 一 点 不 同 可 以 用 CA D O Co m m a n d 类 创 建 特 殊 的 查 询 或 用C ADOC onne c t io n 执 行 标 准 的 查 询 CA D O Co m m a n d 要 比 C ADOC onne c t io n 灵活 得 多 可 以 用 它 来 执 行 多 种 和 数 据 库 有 关 的 任 务 例 如 可 以 用 它 操 纵 数 据库 的 结 构 或 者 执 行 其 它 的 管 理 任 务

第 4 章 A D O 与 O D B C - 图891本 章 中 我 们 要 考 察 的 最 后 一 组 类 是 实 际 浏 览 数 据 时 使 用 的 类

第 4 章 A D O 与 O D B C - 图892第 4 章 A D O 与 O D B C - 图893第 4 章 A D O 与 O D B C - 图894第 4 章 A D O 与 O D B C - 图895CR e c o rd V ie w ( O D BC ) 和 C ADOR e c o rd V ie w ( A DO ) 类 允 许 你 实 际 查 看 检 索 到 的 数据 本 质 上 说 这 些 类 要 完 成 的 任 务 就 是 将 数 据 从 记 录 集 对 象 移 动 到 对 话 框 或窗 口 上 的 控 件 中 你 还 可 以 使 用 这 些 类 来 检 测 何 时 到 达 记 录 集 的 开 始 或 结 尾