to cf0129:
可以恢复的。我试过了。可能什么地方设置错了吧。如Adoconnection原来连什么之类的。
我用AdoConnection先连mydb,open一个表,然后用下面的程序。
把mydb2拷贝到mydb,tablename换成mydb2中的表,copy成功。把逻辑想清楚。
procedure TForm1.Button2Click(Sender: TObject);
var
sSourceFileDirNameExt : String;
sDestFileDirNameExt : String;
begin
with opendialog1 do
begin
title:='数据恢复';
initialdir:='E:/backup/database';{设置默认文件目录}
filter:='database(*.mdb)|*.mdb|';{设置文件过滤条件}
AdoTable1.Close;
ADOConnection1.Close;
if Execute then
begin
try
sSourceFileDirNameExt:=opendialog1.FileName;
// sDestFileDirNameExt:='e:/adomis
/database/db1.mdb';
sDestFileDirNameExt:='e:/dfwtest/test4/mydb.mdb';
copyfile(pchar(sSourceFileDirNameExt),pchar(sDestFileDirNameExt),false);
ADOConnection1.Open;
adotable1.TableName := 'cstable';
adotable1.Open;
except
MessageBox(Handle,'打开数据库失败,请检查数据库是损坏.','内行系统信息',MB_OK+MB_ICONERROR);
Exit;
end;
end;
end;
end;