【问题标题】:Btrieve file only shows partial dataBtrieve 文件只显示部分数据
【发布时间】:2020-01-08 13:40:25
【问题描述】:

几乎准备好扔白旗了,但我想我会把它扔出去。我有一个 1994 年的旧程序,它使用 btrieve dB 并呈现健身房的基本会员信息。保存数据的 btr 文件将在记事本中打开,我可以搜索并找到所有记录,尽管格式几乎不可读。当它在程序中打开时,会丢失大量记录。滚动时似乎会在特定记录上停止。

我对 btrieve 几乎一无所知,因为它比我的 IT 职业早了很多年,而且老实说我从未见过它。任何关于我应该在哪里进行故障排除或可能有帮助的工具的建议将不胜感激。

【问题讨论】:

  • 程序中是否显示任何日志记录或错误? BUTIL 是一个可以“导出”记录的程序。在导出中,只有字符串是可读的。如果您导出记录,您是否找到程序中缺少的记录? BUTIL 保存的示例是:BUTIL -save Datafile.btr unformattedfile.txt(其中 Data file.btr 是应用程序使用的文件——您在记事本中打开的文件)。根据 Btrieve 的版本,您还可以使用 Function Executor 打开文件并浏览记录。
  • 未显示错误。它似乎工作正常,向上或向下滚动时它只是停在同一条记录上。我会尝试通过 butil 保存。我尝试了打捞、恢复等,但无法完成其中任何一个。可能是我的错误,但整个平台对我来说都是陌生的。
  • 如果 BUTIL 没有完成,它应该显示一个错误。它可能是损坏的文件或损坏的索引或其他东西。你知道 Btrieve 运行的是什么版本吗?此外, BUTIL -STAT 将为您提供有关文件的统计信息,包括记录数。这将是与 BUTIL -SAVE 输出的一个很好的比较。它们应该匹配。
  • 谢谢,这些是一些很好的故障排除步骤。我会尽快试一试。
  • 我不确定 btrieve 的版本,但您建议的 butil 命令运行成功。 -SAVE 命令保存了 1744 条记录。 STAT 命令呈现总共 3 个键和 3 个段。第 0 段显示 1756 个唯一值,第 1 段显示 1735 个值,第 2 段显示 1 个值。我将不得不研究 Stat 结果以了解它们,但 SAVE 开关生成的文件似乎包含未在程序中呈现的记录。还有什么建议吗?如果没有别的,来自 SAVE 命令的 txt 文件至少有助于手动重新输入,非常感谢。

标签: pervasive btrieve


【解决方案1】:

这听起来像是文件可能已损坏,但如果它已损坏,我预计会出现错误。重建文件的一种方法是使用 BUTIL(和几个操作系统命令)。
重建的步骤是:

  1. 将原始文件备份到另一个目录。
  2. 重命名原始文件。我喜欢使用将扩展名更改为 .OLD。
  3. 删除原始文件。它将在下一步中重新创建。
  4. 发出 BUTIL -CLONE 命令(BUTIL -CLONE
  5. 发出 BUTIL -COPY 命令 (BUTIL -COPY

重建完成。 我过去使用过以下命令(更改“文件名”和扩展名以匹配我的文件)。

copy filename.btr someother\location\filename.btr 
ren filename.btr filename.old 
del filename.btr 
butil -clone filename.btr filename.old
butil -copy filename.old filename.btr

【讨论】:

  • 刚刚运行了您建议的命令。该过程运行,但我得到一个错误引用重复键值。这可能是我的问题。关于如何找到重复键的任何建议?
  • 其实我离题了....这似乎奏效了。我会做一些测试,并让我正在为此工作的人进行测试。我会尽快发布结果。感谢大家的建议和专业知识!
  • 按照上述步骤克隆和复制问题已解决。再次感谢大家..
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 2020-03-18
  • 2012-05-31
  • 2019-04-25
  • 1970-01-01
  • 2023-04-03
  • 2023-03-23
  • 1970-01-01
相关资源
最近更新 更多