新闻 | 天津 | 民生 | 广电 | 津抖云 | 微视 | 读图 | 文娱 | 体育 | 图事 | 理论 | 志愿 | 专题 | 工作室 | 不良信息举报
教育 | 健康 | 财经 | 地产 | 天津通 | 旅游 | 时尚 | 购物 | 汽车 | IT | 亲子 | 会计 | 访谈 | 场景秀 | 发布系统

"津云"客户端
  您当前的位置 :北方网 > IT浪潮 > 北方学院 > 软件文库 > 其它 正文
关键词:

如何修改Foxpro数据库


http://www.enorth.com.cn  2001-01-11 00:00

  随着计算机技术的迅速发展,计算机的应用与普及程度也越来越高。绝大多数单位已不同程度地将计算机技术应用于工作的某个方面。早期的数据库应用系统大多采用FoxBase+或Foxpro编程,由于这种数据库技术的局限性,缺乏对数据完整性、安全性和一致性方面的控制手段,没有大型数据库的“事务处理”的概念,在运行过程中,由于异常事件,如断电、网络故障、服务器、工作站锁死等因素,会造成部分使用中的数据库遭到破坏,当打开损坏的数据库时,将出现提示“不是dbf数据库”,导致数据不可用。

  

  经过工作实践,反复摸索,我发现可以利用Pctools或其他十六进制的编辑工具如WinHex等工具软件修复,将损失降到最小程度。下面,简述其修复过程。

  

  1?背景知识:数据库文件的前32个字节为数据库控制信息。其中,第5、6字节分别存放记录个数的低8位和高8位。例如:一数据库有2345(十六进制数为:929)条记录,则该数据库的第5、6字节分别存放29,09;以下每32个字节连续存放每个字段的定义,其中每32个字节的第17字节存放字段宽度;字段定义完后两字节为0d,20,之后连续存放记录数据(每字段宽度之和加1个字节即list stru命令显示出的“**total** xxx”个字节存放一条记录),最后,以1A结束。

  

  2?修复原理:数据库损坏后,多数情况为后面的几条记录损坏。通过直接修改数据库包含记录条数的方法使损坏的数据可用,然后,补录后几条记录即可。

  

  3?修复过程:1在DOS下,利用Pctools工具包中的filefix命令“预修复”(由程序自动审查完好记录的个数)损坏的数据库,在修复结果中查看并记录下已修复的记录个数,如:2343,换算为十六进制数为927;2利用Pctools或其他的十六进制的编辑工具如:WinHex等工具软件将该数据库的第5字节改为27;3将数据库的前四个字节修改为原文件的备份文件或同目录下完好数据库的前四个字节;4存盘退出。

  

  注:如果数据库包含备注型字段,对于FoxBase+数据库可以直接用filefix修复,但Foxpro数据库,由于其备注型字段内容存放在?fpt文件中,而filefix无法直接修复。

  以上方法在DOS6?22,Foxpro2?5 for DOS,Pctools 9?0下测试通过,错误或不妥之处请指教。(李景海)

  

编辑 超级管理员 null
[进入IT论坛]
请您文明上网、理性发言并遵守相关规定,在注册后发表评论。
 北方网精彩内容推荐
无标题文档
天津民生资讯
天气交通 天津福彩 每月影讯 二手市场
空气质量 天津股票 广播节目 二手房源
失物招领 股市大擂台 天视节目 每日房价
热点专题
北京奥运圣火传递和谐之旅 迎奥运 讲文明 树新风
解放思想 干事创业 科学发展 同在一方热土 共建美好家园
2008天津夏季达沃斯论坛 《今日股市观察》视频
北方网网络相声频道在线收听 2008高考招生简章 复习冲刺
天津自然博物馆馆藏精品展示 2008年天津中考问题解答
带你了解08春夏服饰流行趋势 完美塑身 舞动肚皮舞(视频)
C-NCAP碰撞试验—雪佛兰景程 特殊时期善待自己 孕期检查
热点新闻排行 财经 体育 娱乐 汽车 IT 时尚 健康 教育

Copyright (C) 2000-2021 Enorth.com.cn, Tianjin ENORTH NETNEWS Co.,LTD.All rights reserved
本网站由天津北方网版权所有