1:关键是看你的数据量是否大,如果大的话可以按增量备份或恢复,否则全部了
2:你可以按每行记录的插入过程和Tprogressbar联系起来啊。
比如:
progressbar1.Max :=RecordCount ;
For ii:=1 to RecordCount do
begin
//insert
progressbar1.Position :=ii;
Application.ProcessMessages
Next ;end;
2:你可以按每行记录的插入过程和Tprogressbar联系起来啊。
比如:
progressbar1.Max :=RecordCount ;
For ii:=1 to RecordCount do
begin
//insert
progressbar1.Position :=ii;
Application.ProcessMessages
Next ;end;
备份:
ADOCmd.CommandText:='BACKUP DATABASE 库名 TO DISK=备份路径和文件名 ’
还原:
先删除原来的
ADOCmd.CommandText:='Drop Database 库名 ';
还原
ADOCmd.CommandText:='Restore database 库名 from DISK=文件名 ’
具体可参看数据库的帮助
应该是小型数据库吧,象Paradox, dbase.用CoypFile()函数全部搞定。
备份的数据是软件的安装路径下的\data文件夹中的各种表,如用户选择安装目录"c:\xx",则备份的为"c:\xx\data\"目录下的各种表,若用户选择安装目录"d:\yy",则备份的为"d:\yy\data\"目录下的各种表。
能不能说的详细点,如获取路径过程,拷贝过程,恢复过程等等...谢谢。
pgbar.Max:=100;
pgbar.Min:=0;
pgbar.Step:=20;
try
adoconnection1.Close; adocommand1.CommandText:='execute sp_helpdevice';
pgbar.StepIt;
adocommand1.Execute ;
pgbar.stepit;
adocommand1.CommandText:='backup database docmanage to disk=''c:\ccc.bak'' with init';
pgbar.StepIt;
adocommand1.Execute ;
adocommand1.CommandText:='backup log docmanage to ccc';
pgbar.StepIt;
adocommand1.Execute;
form1.Hide;
if messagedlg('数据库docmanage已成功备份到c:\ccc.bak!是否继续?',mtwarning,[mbok],0)=mrok then
begin
form1.close
end;
adoconnection1.Open;
except
on exception do
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans
end;
end;
还原:
adoconnection1.Close ;
pgbar.Max:=100;
pgbar.Min:=0;
pgbar.Step:=20;
try
ADOCommand1.CommandText:='use master ';
pgbar.StepIt;
adocommand1.Execute ;
adocommand1.CommandText:='RESTORE database docmanage FROM DISK = ''c:\ccc.bak'' with replace ';
pgbar.StepIt;
pgbar.StepIt;
adocommand1.Execute ;
pgbar.StepIt;
pgbar.StepIt;
adoconnection1.Open;
form1.Hide;
if messagedlg('c:\ccc.bak已成功还原到数据库docmanage!继续?',mtwarning,[mbok],0)=mrok then
begin
form2.close
end;
except
on exception do
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
end;