数据恢复的问题(20分)

  • 主题发起人 主题发起人 eighteenzl
  • 开始时间 开始时间
E

eighteenzl

Unregistered / Unconfirmed
GUEST, unregistred user!
var
path:string;
N:integer;
begin

showmessage('请在恢复数据之前关闭所有与数据连接有关的程序,以免恢复失败!');
opendialog1.Filter:='(所有备份文件)|*.bak';
Opendialog1.Title := '选择恢复文件路径和文件名';
opendialog1.InitialDir:=extractfiledir(application.ExeName)+'/databack/';//打开备份的文件目录;
If opendialog1.Execute then
path:=opendialog1.FileName;
IF Path<>'' then
if messagebox(self.Handle,'确定要恢复数据库吗?这样会覆盖现在的数据。','提示信息',mb_yesno+mb_iconquestion)=idyes then
begin
TRY
try
begin
Screen.Cursor:=CrhourGlass;
close;
ADOQry_main.SQL.Clear;
ADOQry_main.SQL.Text:='use master restore database '+'人事管理系统'+' from disk ='+''''+ Trim(path)+'''';
ADOQry_main.ExecSQL();
progressbar1.Visible:=true;
for N:=0 to 500 do
progressbar1.Position:=N;
Screen.Cursor:=CrDefault;
messagebox(self.Handle,'数据恢复成功','提示信息',mb_iconinformation);
Progressbar1.Position:=0;
Close;
end;
except
Screen.Cursor:=CrDefault;
messagebox(self.Handle,'数据恢复失败','提示信息',mb_iconinformation);
exit;
end;
Finally
with ADOQry_main do
begin
Close;
SQL.Clear;
SQL.Add('USE 人事管理系统');
ExecSQL;
end;
end;
end;
end;
这是一段恢复的代码但是恢复不了,
各位大侠麻烦帮忙看看这段代码,那里出错了,编译是没有出误,提示也是成功的,可是我选择的数据确没有恢复过来,
而且在ADOQry_main.ExceSQL()也是没有提示有错误但数据却没有恢复过来,不知道是为什么
请高手们多多帮忙
 
'use master restore database '+'人事管理系统'+' from disk ='+''''+ Trim(path)+''''
这个在查询分析器里是这样做的,
在程序里,要先连接到master,也就是说你要让ADOQry_main的ConnectionString是下面这样的:
ADOQry_main.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=.';

然后用restore database
 
老兄,这里的的'use master restore database '+'人事管理系统'+' from disk ='+''''+ Trim(path)+''''
能帮心注释一下吗,.我不理解他的意思,为什么要用USE master 这个数据库呢,我有点不解
本来这个意思好像是让另外一个备份的数据来覆盖 人事管理系统 这个数据库的麻?
谢谢
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
929
SUNSTONE的Delphi笔记
S
后退
顶部