频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

如何修复被破坏的Foxpro数据库

来源:计算机世界日报 作者:葛现宗 出处:巧巧读书 2005-12-03 进入讨论组
P>目 前 在 我 国, 有 相 当 一 部 分 正 在 运 行 应 用 程 序 是 用Foxpro 编 写 的, 由 于 突 然 断 电、 程 序 非 法 关 闭 等 原 因, 经 常 会 导 致Foxpro 数 据 库.DBF 文 件 被 破 坏, 如 果 数 据 库 被 破 坏 了, 用Foxpro 打 开 数 据 库.DBF 时, 会 出 现"not a table/dbf" 错 误 提 示, 导 致 无 法 用Foxpro 打 开。

   首 先 介 绍 一 下Foxpro 数 据 库.DBF 的 文 件 结 构:

   Foxpro 数 据 库*.DBF 的 文 件 结 构 由 头 记 录 和 数 据 记 录 组 成, 头 记 录 定 义 该DBF 的 结 构 并 包 含 与 该 库 相 关 的 其 它 信 息。 头 记 录 由 文 件 位 置0 字 节 开 始。

   数 据 库 头 部 几 个 关 键 字 节 含 义 如 下: ( 注: 库 文 件 中 存 储 整 数 时 低 位 字 节 在 前)

   字 节 偏 移 说 明

0 库文件的版本类型
1-3 近更新的日期(YYMMDD)
4-7 库文件中记录的个数
8-9 第一条记录的起始位置
10-11 一条记录的长度(包括删除标记)

  赘 述, 可 以 参 考 有 关 部 门 书 籍 或 者 程 序 开 头 注 释 部 分。

   在 实 际 工 作 中 发 现, 许 多 情 况 下 数 据 库 错 误 都 是 由 于 记 录 个 数 比 实 际 记 录 个 数 大1 个, 以 至 于 数 据 库 无 法 用 打 开。

   主 要 通 过 以 下 两 种 办 法 来 对 数 据 库 进 行 修 复。

一、 用Pctools、NU 的Diskedit 等 工 具 软 件 进 行 恢 复:

  1. 运 行Pctools, 选 中 无 法 打 开 的 数 据 库, 按E 文 件 进 入 编 辑 功 能, 按F1 切 换 显 示 模 式。
  2. 按F3 进 行 编 辑, 将 开 始 的 第5 个 字 节 值 减1, 按F5 存 储, 然 后 退 出Pctools, 启 动Foxpro, 发 现 被 破 坏 的 数 据 库 可 以 打 开 使 用 了。
   由 于 许 多 操 作 者 并 不 一 定 熟 悉 如 何 使 ? tools, 因 此 我 建 议 大 家 可 以 用 比 较 熟 悉 的Excel 程 序 根 据 下 面 的 步 骤 来 进 行 数 据 库 的 恢 复。

二、 用Excel 进 行 恢 复。

  1. 启 动Excel, 选 择" 打 开" 按 钮, 出 现 打 开 对 话 框, 在 打 开 文 件 类 型 中 选 择Dbase/Foxpro(*.DBF) 文 件 类 型, 再 选 中 被 破 坏 的 数 据 库 打 开, 这 时 不 要 做 更 改, 只 选 择" 保 存" 按 钮, 会 出 现" 另 存 为" 对 话 框, 仍 选 择 以 原 来 文 件 名 保 存, 会 提 示" 文 件 已 经 存 在, 是 否 替 换 已 有 文 件 ?", 选 择" 是"。
  2. 然 后 选 择" 文 件" 菜 单 上 的" 关 闭", 会 出 现 提 示" 数 据 库 文 件 不 是Excel 格 式, 要 保 留 修 改 吗 ?
  • 要 保 存 为Excel 格 式, 单 击 是, 然 后 在 保 存 类 型 下 拉 列 表 框 选Excel 工 作 簿;
  • 要 用 现 有 格 式 保 存 并 替 换 原 来 的 文 件, 单 击 是, 然 后 单 击 保 存;
  • 要 在 关 闭 文 件 时 维 持 现 有 格 式 并 不 作 保 存, 单 击 否。"
   由 于 我 们 并 没 有 对 数 据 库 的 记 录 进 行 改 动, 只 是 为 了 恢 复 数 据 库, 所 以 选 择 最 后 一 项" 在 关 闭 文 件 时 维 持 现 有 格 式 并 不 作 保 存", 因 此 单 击" 否", 退 出Excel。
  1. 启 动Foxpro, 再 次 打 开 数 据 库 文 件, 发 现 数 据 库 文 件 已 可 以 被 打 开 了, 但 是 观 察 数 据 库 的 结 构, 会 发 现 数 据 库 结 构 中 的 索 引 不 见 了, 不 过 数 据 库 的 索 引 文 件 还 存 在。 我 们 只 需 要 给 数 据 库Add 索 引, 并 选 择 原 来 的 索 引 文 件Open 即 可。
  2. 添 加 索 引 文 件 后 退 出 数 据 库 结 构 设 置, 并 对 数 据 库 重 新 索 引 一 下, 就 可 以 继 续 使 用 原 来 被 破 坏 的 数 据 库 了。
请保留地址 http://www.qqread.com/foxpro/s872126605.html 更多文章 更多内容请看数据库专栏数据库处理专题城域网专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:数据挖掘技术简介

较新的文章:在VFP中模拟动画
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章