用ADO管理SQLServer数据库及其设备
2008-04-02 10:39:13来源:互联网 阅读 ()
现 存 问 题
---- 我 们 知 道, 在 使 用CREATE DATABASE 语 句 创 建 一 个 数 据 库 之 前, 必 须 存 在 一 个 有 剩 余 空 间 的 数 据 库 设 备, 或 者 事 先 使 用DISK INIT 语 句 创 建 一 个 新 设 备。 但 是 这 些 语 句 含 有 很 多 必 需 的 参 数, 而 且 如 果 不 使 用SQL Server 的 管 理 工 具, 很 多 参 数 值 往 往 难 以 确 定。---- 以 创 建 数 据 库 设 备 的DISK INIT 语 句 为 例, 这 个 语 句 的 完 整 语 法 如 下:
DISK INIT NAME = ‘logical_name', PHYSNAME = ‘physical_name', VDEVNO = virtual_device_number, SIZE = number_of_2K_blocks [, VSTART = virtual_address]
---- 其 中NAME 和SIZE 这 两 个 参 数 都 很 容 易 得 到, 麻 烦 的 是 物 理 名PHYSNAME 和 虚 拟 设 备 号VDEVNO 这 两 个 参 数。 前 者 要 求 是 一 个 服 务 器 上 的 物 理 文 件 全 路 径 名; 后 者 要 求 在1 ~255 之 间 找 一 个 没 有 被 别 的 设 备 占 用 的 号 码。 而 在 编 写 数 据 库 管 理 程 序 时, 用 户 的 服 务 器 上 有 哪 些 设 备 号 已 经 被 占 用,SQL Server 装 在 哪 个 驱 动 器 上, 都 是 无 法 预 料 的。
---- 虽 然, 使 用SQL Server 的 管 理 工 具SQL Enterprise Manager, 可 以 非 常 方 便 地 创 建、 删 除 数 据 库 设 备, 或 者 扩 大 一 个 已 经 存 在 的 数 据 库, 也 可 以 非 常 方 便 地 创 建、 删 除 或 者 修 改 一 个 数 据 库, 但 是, 这 个 工 具 仍 然 要 求 我 们 输 入 很 多 不 太 常 用 的 参 数, 界 面 稍 显 复 杂。
---- 所 以, 理 想 的 情 况 是: 用 户 只 需 要 按 下 一 个 命 令 按 钮, 应 用 程 序 需 要 的 数 据 库 及 其 设 备 都 能 立 即 自 动 地 创 建 好。
解 决 方 案
---- 为 了 实 现 这 样 的 目 标, 我 们 必 须 想 办 法 解 决SQL 语 句 中 的 参 数 设 置 问 题。---- 1 . 创 建 设 备 的 语 句 参 数
---- 创 建 设 备 的 语 句 即 前 面 提 到 的DISK INIT 语 句。
---- 为 了 简 化 问 题, 我 们 可 以 指 定 和 数 据 库 名 相 同 的 设 备 文 件 名, 并 将 设 备 文 件 保 存 在master 设 备 所 在 的 子 目 录 中。 数 据 库 名 是 在 设 计 应 用 程 序 时 已 经 确 定; 而master 设 备 所 在 的 子 目 录, 可 以 从 系 统 表sysdevices 中 查 询 得 到。 这 样, 设 备 文 件 的 物 理 名 参 数 就 确 定 下 来 了。
---- 虚 拟 设 备 号 的 问 题 则 比 较 复 杂, 因 为sysdevices 系 统 表 中 没 有“ 虚 拟 设 备 号” 这 样 一 个 字 段, 因 此, 必 须 另 想 办 法。
---- 对SQL Server 的 系 统 存 储 过 程sp_helpdevice 进 行 分 析 之 后, 我 们 发 现, 虚 拟 设 备 号 是“ 隐 藏” 在sysdevices 系 统 表 的low 字 段 中 的, 借 助 另 一 个 系 统 表spt_values, 可 以 找 到 每 个 设 备 的 虚 拟 设 备 号。 这 样, 我 们 只 需 要 在 一 个 循 环 中 找 一 下 某 个 设 备 号 是 否 存 在 于sysdevices 中, 就 可 以 确 定 我 们 现 在 可 用 的 虚 拟 设 备 号。
---- 至 于 数 据 库 设 备 的 大 小, 我 们 不 妨 设 得 大 一 些, 或 者 让 用 户 指 定 一 下 也 可 以。
---- 2 . 创 建 数 据 库 的 语 句 参 数
---- 创 建 数 据 库 的 语 句 如 下:
CREATE DATABASE database_name [ON {DEFAULT | database_device} [= size] [, database_device [= size]]...] [LOG ON database_device [= size] [, database_device [= size]]...] [FOR LOAD]
---- 其 中, 大 部 分 参 数 都 是 可 选 的, 我 们 只 需 要 指 定 一 个 设 备 名 及 数 据 库 的 大 小 即 可, 而 数 据 库 名、 设 备 名、 大 小 在 创 建 设 备 的 时 候 已 经 确 定 好 了, 所 以, 这 个 语 句 的 参 数 不 存 在 问 题。
具 体 实 现
---- 使 用 普 通 的 应 用 开 发 工 具Visual Basic, 我 们 就 可 以 实 现 一 个 定 制 的 数 据 库 管 理 程 序。---- 为 了 实 现 和 数 据 库 服 务 器 的 连 接, 我 们 必 须 选 择 一 种 数 据 库 访 问 接 口。 虽 然 从VB 访 问SQL Server 有 很 多 接 口 可 供 选 择, 但 微 软 最 新 的 数 据 库 访 问 接 口ADO(Active Data Objects) 无 疑 是 最 有 前 途 的, 因 为 他 为 基 于 浏 览 器 的 数 据 库 应 用 系 统 的 实 现 提 供 了 可 能 性。
---- 以 下 是 一 些 用 于 数 据 库 及 其 设 备 管 理 的 常 用 函 数。
---- 1 . 取 当 前 的 工 作 数 据 库
---- 由 于 管 理 任 务 一 般 都 必 须 在master 库 中 完 成, 因 此, 在 执 行 管 理 任 务 之 前, 最 好 保 存 当 前 工 作 库, 以 便 完 成 任 务 之 后 再 切 换 回 去。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash