大家来帮帮忙
前台用delphi6编制的数据库程序中,如何在前台程序中编写代码,实现DB的备份和恢复功能。求源代码!!
急呀!
问题点数:0、回复次数:3Top
1 楼zenwin(zenwin)回复于 2003-12-01 12:44:53 得分 0
以前在用BDE时, 有个batchmove之类的可以简单完成, 不过也挺慢的, 反而觉行直接写找码创建目的表再循环插进去还好点Top
2 楼noil0125(珏心)回复于 2003-12-01 12:51:04 得分 0
SQL SERVER
//////////////////////备份
try
Bak_ADOQ.Close();
Bak_ADOQ.SQL.Clear;
Bak_ADOQ.SQL.Add('use master');
Bak_ADOQ.Prepared;
Bak_ADOQ.ExecSQL;
restorestring :='RESTORE DATABASE '+trim(databaseName)+' FROM DISK = N'''+FileName+''' WITH FILE = 1, NOUNLOAD , STATS = 10, REPLACE,RECOVERY';
Bak_ADOC.CommandText := restoreString;
Bak_ADOC.Execute;
application.MessageBox('恢复数据成功!','数据恢复', mb_ok+MB_ICONINFORMATION);
Bak_ADOQ.Close();
Bak_ADOQ.SQL.Clear;
Bak_ADOQ.SQL.Add('use '+trim(databaseName));
Bak_ADOQ.Prepared;
Bak_ADOQ.ExecSQL;
except
application.MessageBox('恢复数据出错!请重新恢复,并停止一切的数据操作!','数据恢复', mb_ok+MB_ICONINFORMATION);
end;
///////////////////////////恢复
if saveDialog.Execute then
try
saveDialog.Title:='备份数据路径';
backupString := 'BACKUP DATABASE '+trim(databaseName)+' TO DISK = N'+quotedstr(saveDialog.FileName)+' WITH INIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT';
Bak_ADOQ.Close;
Bak_ADOQ.SQL.Clear;
Bak_ADOQ.SQL.Add(backupString);
Bak_ADOQ.Prepared;
Bak_ADOQ.ExecSQL;
application.MessageBox('备份成功!','数据备份', mb_ok+MB_ICONINFORMATION);
except
application.MessageBox('备份出错!请重新备份数据。','数据备份', mb_ok+MB_ICONINFORMATION);
end;Top
3 楼delphi_xizhousheng(西周生)回复于 2003-12-01 12:53:34 得分 0
有没有想过写存储过程呢?效率高很多吧
用TStoreProc调Top




