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打开,(access2000或200x更好),默认密码是(Manteghulteir)(如果你的文件有密码,
而且你还忘了密码,则需要上网搜索access的接密软件,一般需要注册,否则只显示前三
位:Man**********).
打开以后会看到三个表,我们只关心Items表.如果你用access也不能打开的话,试试access的
修复功能,还不行的话,只能上网搜搜有没有高人写的修复软件了,如果打不开........................
我也没办法.
打开Items表后就能看到许多记录了,找到标记为"#错误"的记录和不符合Protel结构的记录,
删掉就行了(可能会丢失一些东西).
如果你能删掉它,恭喜.
但是,一般你是删不掉的,而且时不时的弹出"Not a valid bookmark".错误(access97).
一种想法是,新建一个和Item结构相同的表(很容易),然后把原Item的正确的记录拷贝过来,
最后把原Item删掉,把新表改名为"Item".我也这样做了,我没有成功:protel还会问你用户名和
密码.
另一种方法是,自己用VB或VC或==,(推荐用E语言,简单,大部分都是中文操作),编写软件,
把"Data"字段保存为"Name"字段的名字的文件.这种方法我现在还没有试过.因为我找到了另
外一种方法.
一定能解决问题的方法:
首先简单分析一下,Items表的结构:"Name"文件名,"ParentID"从属关系,"EdierName"文件属性,
其他不讨论了.
1 用protel新建一个基于access的ddb文件
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的结构,一下搞过来.
发布评论