在query 中,写 backup database tablename to disk='目录路径及文件名' with init 或:在Form中放上一个ADOConnection和一个ADOCommand,设好ADOConnection的DefaultDatabase和Connected为True,ADOCommand的Connection为ADOConnection1,CommandText写为backup database mydatabase to disk='\\mycomputer\mypath\bk_mydat.dat' with init,你想把数据备份到哪台机器上,就在那台机器上设置一个完全共享的目录即可,想同时备份多个数据库就在CommandText中写多条语句,在Form的onShow事件中加入ADOCommand1.Execute,然后利用Windows自带的“计划任务”程序,让你编译好的程序在某个时间执行即可,
//这个问题已经回答了N遍,你可以看看以前的帖子好了procedure 备份数据库(sender:tobject); begin adoconnection1.execute('backup database ...'); ... end; procedure 还原数据库(sender:tobject); begin adoconnection1.execute(restoredatbase database ...'); ...
备份: begin pgbar.Max:=100; pgbar.Min:=0; pgbar.Step:=20; adoconnection1.Close; if adoconnection1.Connected then begin application.MessageBox('数据库数据正在使用','系统提示') end else begin try adocommand1.CommandText:='use master'; pgbar.StepIt; adocommand1.Execute ; adocommand1.CommandText:='execute sp_helpdevice'; pgbar.StepIt; adocommand1.Execute ; pgbar.stepit; adocommand1.CommandText:='backup database docmanage to disk=''c:\back1.bak'' with init'; pgbar.StepIt; adocommand1.Execute ; adocommand1.CommandText:='backup log docmanage to back1'; pgbar.StepIt; adocommand1.Execute; try aDOConnection1.Connected:=true; except ShowMessage('无法连接指定的数据库!'); application.Terminate; end; form1.Hide; if messagedlg('数据库docmanage已成功备份到c:\back1.bak!是否继续?',mtwarning,[mbok],0)=mrok then begin form1.close end; except on exception do if ADOConnection1.InTransaction then ADOConnection1.RollbackTrans end; end; end; 还原: begin pgbar.Max:=100; pgbar.Min:=0; pgbar.Step:=20; try ADOCommand1.CommandText:='use master '; pgbar.StepIt; pgbar.StepIt; adocommand1.Execute ; adocommand1.CommandText:='RESTORE database docmanage FROM DISK = ''c:\back.bak'' with replace '; pgbar.StepIt; pgbar.StepIt; pgbar.StepIt; adocommand1.Execute ; try aDOConnection1.Connected:=true; except ShowMessage('无法连接指定的数据库!'); application.Terminate; end; form1.Hide; if messagedlg('c:\back.bak已成功还原到数据库docmanage!继续?',mtwarning,[mbok],0)=mrok then begin form2.close end; except on exception do if ADOConnection1.InTransaction then ADOConnection1.RollbackTrans; end; end; end; 你试试看了我这里能用!!!!
backup database tablename to disk='目录路径及文件名' with init
或:在Form中放上一个ADOConnection和一个ADOCommand,设好ADOConnection的DefaultDatabase和Connected为True,ADOCommand的Connection为ADOConnection1,CommandText写为backup database mydatabase to disk='\\mycomputer\mypath\bk_mydat.dat' with init,你想把数据备份到哪台机器上,就在那台机器上设置一个完全共享的目录即可,想同时备份多个数据库就在CommandText中写多条语句,在Form的onShow事件中加入ADOCommand1.Execute,然后利用Windows自带的“计划任务”程序,让你编译好的程序在某个时间执行即可,
begin
adoconnection1.execute('backup database ...');
...
end;
procedure 还原数据库(sender:tobject);
begin
adoconnection1.execute(restoredatbase database ...');
...
begin
pgbar.Max:=100;
pgbar.Min:=0;
pgbar.Step:=20;
adoconnection1.Close;
if adoconnection1.Connected then
begin
application.MessageBox('数据库数据正在使用','系统提示')
end
else
begin
try
adocommand1.CommandText:='use master';
pgbar.StepIt;
adocommand1.Execute ;
adocommand1.CommandText:='execute sp_helpdevice';
pgbar.StepIt;
adocommand1.Execute ;
pgbar.stepit;
adocommand1.CommandText:='backup database docmanage to disk=''c:\back1.bak'' with init';
pgbar.StepIt;
adocommand1.Execute ;
adocommand1.CommandText:='backup log docmanage to back1';
pgbar.StepIt;
adocommand1.Execute;
try
aDOConnection1.Connected:=true;
except
ShowMessage('无法连接指定的数据库!');
application.Terminate;
end;
form1.Hide;
if messagedlg('数据库docmanage已成功备份到c:\back1.bak!是否继续?',mtwarning,[mbok],0)=mrok then
begin
form1.close
end;
except
on exception do
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans
end;
end;
end;
还原:
begin
pgbar.Max:=100;
pgbar.Min:=0;
pgbar.Step:=20;
try
ADOCommand1.CommandText:='use master ';
pgbar.StepIt;
pgbar.StepIt;
adocommand1.Execute ;
adocommand1.CommandText:='RESTORE database docmanage FROM DISK = ''c:\back.bak'' with replace ';
pgbar.StepIt; pgbar.StepIt;
pgbar.StepIt;
adocommand1.Execute ;
try
aDOConnection1.Connected:=true;
except
ShowMessage('无法连接指定的数据库!');
application.Terminate;
end;
form1.Hide;
if messagedlg('c:\back.bak已成功还原到数据库docmanage!继续?',mtwarning,[mbok],0)=mrok then
begin
form2.close
end;
except
on exception do
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
end;
end;
end;
你试试看了我这里能用!!!!