還原、備份 procedure Tsys_datamodule.DataBaseBack; var FileName:string; ADOQ:TADOQuery; begin ADOQ:=TADOQuery.Create(nil); ADOQ.Connection:=sys_datamodule.con1; if MessageDlg('你確定要備份數據庫嗎?',mtInformation,[mbYes,mbNo],0)=idyes then begin try if SaveDialog1.Execute then begin FileName:=SaveDialog1.FileName; if (Copy(FileName,Length(FileName)-3,4)<>'.BAK') or (Copy(FileName,Length(FileName)-3,4)<>'.bak') then FileName:=FileName+'.BAK'; ADOQ.SQL.Text:='Use Master Backup Database MES to Disk='''+ FileName+''' Use MES'; ADOQ.ExecSQL; MessageDlg('數據庫備份成功!',mtInformation,[mbOK],0); end; except MessageDlg('數據庫備份失敗!',mtInformation,[mbOK],0); Exit; end; end; end;procedure Tsys_datamodule.RestoreBaseBack; var StrFile:string; ADOQ:TADOQuery; begin ADOQ:=TADOQuery.Create(nil); ADOQ.Connection:=sys_datamodule.con1; if MessageDlg('你確定要還原數據庫嗎?',mtInformation,[mbYes,mbNo],0)=idyes then begin try if OpenDialog1.Execute then begin StrFile:=OpenDialog1.FileName; ADOQ.SQL.Text:='Use Master Restore Database MES From Disk='''+ StrFile+''' Use MES'; ADOQ.ExecSQL; MessageDlg('數據庫還原成功!',mtInformation,[mbOK],0); end; except MessageDlg('數據庫還原失敗!',mtInformation,[mbOK],0); Exit; end; end; end;
备份你可以这样写: 'dump database '+DataBaseName+' to disk='''+FileName+''' with init'
恢复时须先断开要恢复的数据库的联接,而后联接MASTER, 'load database '+DataBaseName+' from disk='''+FileName+''''
'backup database ' +backDB+ ' to disk='+''''+dir+''''我是这样子写的,之前备份正常,就最近有时候可以备份,有时候不可以
我刚做完,嘿嘿, if SaveDialog1.Execute then begin qry1.Close; qry1.SQL.Clear ; qry1.SQL.Add('Backup database '+sDb+' ') ; qry1.SQL.Add('to disk='''+SaveDialog1.FileName+''''+' with init'); try qry1.ExecSQL; showmessage('备份成功'); except showmessage('备份失败'); end; end;调试过的,
procedure Tsys_datamodule.DataBaseBack;
var
FileName:string;
ADOQ:TADOQuery;
begin
ADOQ:=TADOQuery.Create(nil);
ADOQ.Connection:=sys_datamodule.con1;
if MessageDlg('你確定要備份數據庫嗎?',mtInformation,[mbYes,mbNo],0)=idyes then
begin
try
if SaveDialog1.Execute then
begin
FileName:=SaveDialog1.FileName;
if (Copy(FileName,Length(FileName)-3,4)<>'.BAK') or (Copy(FileName,Length(FileName)-3,4)<>'.bak') then
FileName:=FileName+'.BAK';
ADOQ.SQL.Text:='Use Master Backup Database MES to Disk='''+ FileName+''' Use MES';
ADOQ.ExecSQL;
MessageDlg('數據庫備份成功!',mtInformation,[mbOK],0);
end;
except
MessageDlg('數據庫備份失敗!',mtInformation,[mbOK],0);
Exit;
end;
end;
end;procedure Tsys_datamodule.RestoreBaseBack;
var
StrFile:string;
ADOQ:TADOQuery;
begin
ADOQ:=TADOQuery.Create(nil);
ADOQ.Connection:=sys_datamodule.con1;
if MessageDlg('你確定要還原數據庫嗎?',mtInformation,[mbYes,mbNo],0)=idyes then
begin
try
if OpenDialog1.Execute then
begin
StrFile:=OpenDialog1.FileName;
ADOQ.SQL.Text:='Use Master Restore Database MES From Disk='''+ StrFile+''' Use MES';
ADOQ.ExecSQL;
MessageDlg('數據庫還原成功!',mtInformation,[mbOK],0);
end;
except
MessageDlg('數據庫還原失敗!',mtInformation,[mbOK],0);
Exit;
end;
end;
end;
'dump database '+DataBaseName+' to disk='''+FileName+''' with init'
'load database '+DataBaseName+' from disk='''+FileName+''''
if SaveDialog1.Execute then
begin
qry1.Close;
qry1.SQL.Clear ;
qry1.SQL.Add('Backup database '+sDb+' ') ;
qry1.SQL.Add('to disk='''+SaveDialog1.FileName+''''+' with init');
try
qry1.ExecSQL;
showmessage('备份成功');
except
showmessage('备份失败');
end;
end;调试过的,