dbf表格损坏如何修复

2025-11-19 22:14:17

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

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

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

   字 节 偏 移 说 明

0库文件的版本类型

1-3近更新的日期(YYMMDD)

4-7库文件中记录的个数

8-9第一条记录的起始位置

10-11一条记录的长度(包括删除标记)

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

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

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

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

运 行Pctools, 选 中 无 法 打 开 的 数 据 库, 按E 文 件 进 入 编 辑 功 能, 按F1 切  换 显 示 模 式。

按F3 进 行 编 辑, 将 开 始 的 第5 个 字 节 值 减1, 按F5 存 储, 然 后 退 出Pctools,  启 动Foxpro, 发 现 被 破 坏 的 数 据 库 可 以 打 开 使 用 了。

   由 于 许 多 操 作 者 并 不 一 定 熟 悉 如 何 使 ?  tools, 因 此  我 建 议 大 家 可 以 用 比 较 熟 悉 的Excel 程 序 根 据 下 面 的 步 骤 来 进 行 数 据 库 的 恢  复。

二、 用Excel 进 行 恢 复。

启 动Excel, 选 择" 打 开" 按 钮, 出 现 打 开 对 话 框, 在 打 开 文 件 类 型 中 选  择Dbase/Foxpro(*.DBF) 文 件 类 型, 再 选 中 被 破 坏 的 数 据 库 打 开, 这 时 不  要 做 更 改, 只 选 择" 保 存" 按 钮, 会 出 现" 另 存 为" 对 话 框, 仍 选 择 以 原 来 文  件 名 保 存, 会 提 示" 文 件 已 经 存 在, 是 否 替 换 已 有 文 件 ?", 选 择" 是"。

然 后 选 择" 文 件" 菜 单 上 的" 关 闭", 会 出 现 提 示" 数 据 库 文 件 不 是Excel  格 式, 要 保 留 修 改 吗 ?

要 保 存 为Excel 格 式, 单 击 是, 然 后 在 保 存 类 型 下 拉 列 表 框 选Excel  工 作 簿;

要 用 现 有 格 式 保 存 并 替 换 原 来 的 文 件, 单 击 是, 然 后 单 击 保 存;

要 在 关 闭 文 件 时 维 持 现 有 格 式 并 不 作 保 存, 单 击 否。"

   由 于 我 们 并 没 有 对 数 据 库 的 记 录 进 行 改 动, 只 是 为 了 恢  复 数 据 库, 所 以 选 择 最 后 一 项" 在 关 闭 文 件 时 维 持 现 有 格 式 并 不 作 保 存", 因  此 单 击" 否", 退 出Excel。

启 动Foxpro, 再 次 打 开 数 据 库 文 件, 发 现 数 据 库 文 件 已 可 以 被 打 开 了,  但 是 观 察 数 据 库 的 结 构, 会 发 现 数 据 库 结 构 中 的 索 引 不 见 了, 不 过 数 据  库 的 索 引 文 件 还 存 在。 我 们 只 需 要 给 数 据 库Add 索 引, 并 选 择 原 来 的 索 引  文 件Open 即 可。

添 加 索 引 文 件 后 退 出 数 据 库 结 构 设 置, 并 对 数 据 库 重 新 索 引 一 下, 就  可 以 继 续 使 用 原 来 被 破 坏 的 数 据 库 了

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢