小弟刚写了一个数据恢复功能,但不能处理异常,如:目标数据库和源数据库目标的表不相同时,怎样给出个提示,不许恢复!!!!(5分)

  • 主题发起人 主题发起人 wangchengwu
  • 开始时间 开始时间
W

wangchengwu

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟刚写了一个数据恢复功能,但不能处理异常,如:目标数据库和源数据库目标的表不相同时,怎样给出个提示,不许恢复!!!!




代码如下:
uses shellapi;

procedure TForm1.Button1Click(Sender: TObject);
var
sSourceFileDirNameExt : String;
sDestFileDirNameExt : String;
begin
with opendialog1 do
begin
title:='数据恢复';
AdoTable1.Close;
ADOConnection1.Close;
if Execute then
begin
try
sSourceFileDirNameExt:=opendialog1.FileName;
sDestFileDirNameExt:=ExtractFilePath(Application.exename)+'/YGXX.mdb';
copyfile(pchar(sSourceFileDirNameExt),pchar(sDestFileDirNameExt),false);
ADOConnection1.Open;
adotable1.TableName := 'jtzjcy';
adotable1.Open;
except
MessageBox(Handle,'打开数据库失败,请检查数据库是损坏.','内行系统信息',MB_OK+MB_ICONERROR);
Exit;
end;
end;
end;
end;

 
异常处理的情况,直接按f9是不能弹出异常处理的对话框,只有运行文件夹里的。exe 才可以弹出
打开数据库失败,请检查数据库是损坏.','内行系统信息' --这一信息。
 
crazypc说的很对,上述虽然有异常提是,但已完成了数据的恢复了,其实根本没有达到处理异常的作用!!!!!!!!
 
先不要着急copyfile 使用AdoConnection1连接到用户选择的文件,使用AdoConnection2
连接到自己的数据库,再比较两个数据库中的表是否相同,之后CopyFile
 
那么怎样比较两个数据库中的表是否相同?
 
同意hryyx的意见,我以前做过数据导出和导入,首先比较两个数据库的表的数目是否相同,
并且同名,然后看每个表的字段数是否相同,一般情况下这两种比较后就应该是两个相同结
构的数据库,除非有人故意破坏.
 
后退
顶部