2023年11月23日发(作者:)

基于access数据库的DDB文件恢复

/*涉及到数据的恢复,但是搞不好会破坏数据,建议首先备份原文件,本人不对下面的描述付任

何责任*/

安装UBENTU,安装了一半不想装了(自动建立了两个LINUX分区,又不给恢复).但是,上船容

易下船难了.从此,埋下了祸根--破坏了我原有的微软系统,不光是NTFS盘访问不了了,重新安

装了几编系统(win2000,xp),每次安装完都能正常使用,但是过几天,就会出现NTOSKRNL

失的现象.终于有一天正在用着Protel99SE,突然系统重起了.要命的是我还没有意识到ddb

件已经被破坏了. 所以又重新格式化c,安装系统.

...

恢复DDB文件很容易,PROTEL自带恢复功能,方法是鼠标点击窗口的左上角的"向下"箭头,

选择"Design ",选择"Repair"选项卡,"Browse.."你的"DDB"文件,"Repair"就好了,很简

.如果不行,可能还需要你安装微软的access.还不行?往下看.

但是我的被破坏的DDB文件,却恢复不了!原因不祥.

所以,我使用了下面的方法:

把文件类型(扩展名),改为mdb.

access97打开,(access2000200x更好),默认密码是(Manteghulteir)(如果你的文件有密码,

而且你还忘了密码,则需要上网搜索access的接密软件,一般需要注册,否则只显示前三

:Man**********).

打开以后会看到三个表,我们只关心Items.如果你用access也不能打开的话,试试access

修复功能,还不行的话,只能上网搜搜有没有高人写的修复软件了,如果打不开........................

我也没办法.

打开Items表后就能看到许多记录了,找到标记为"#错误"的记录和不符合Protel结构的记录,

删掉就行了(可能会丢失一些东西).

如果你能删掉它,恭喜.

但是,一般你是删不掉的,而且时不时的弹出"Not a valid bookmark".错误(access97).

一种想法是,新建一个和Item结构相同的表(很容易),然后把原Item的正确的记录拷贝过来,

最后把原Item删掉,把新表改名为"Item".我也这样做了,我没有成功:protel还会问你用户名和

密码.

另一种方法是,自己用VBVC==,(推荐用E语言,简单,大部分都是中文操作),编写软件,

"Data"字段保存为"Name"字段的名字的文件.这种方法我现在还没有试过.因为我找到了另

外一种方法.

一定能解决问题的方法:

首先简单分析一下,Items表的结构:"Name"文件名,"ParentID"从属关系,"EdierName"文件属性,

其他不讨论了.

1 protel新建一个基于accessddb文件

2 access打开他(A)

3 "EdierName""Folder","ParentID"(C).:

"ParentID"=1,"Name"=Documents,就是我们在Protel里首先见到的那个目录

4 用另一个access打开被损坏的文件(B)

5 复制B库的有用的一条记录到A

6 更改:复制过来的记录的"ParentID"为刚才记录下来的数字C.

7 退出A

8 PROTEL 打开 你可以看到 "Documents"并列的那个文件,<欢呼>,赶快转存到其他地

方吧.

9 如果文件被破坏的比较严重,没办法.

0 如果有多个文件需要恢复,而且脑子好使的话,可以根据Protel的结构,一下搞过来.