大家来帮帮忙 前台用delphi6编制的数据库程序中,如何在前台程序中编写代码,实现DB的备份和恢复功能。求源代码!!急呀! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以前在用BDE时, 有个batchmove之类的可以简单完成, 不过也挺慢的, 反而觉行直接写找码创建目的表再循环插进去还好点 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; 有没有想过写存储过程呢?效率高很多吧用TStoreProc调 求一个Ehlib 3.2 控件的安装方法? 关于 GROUP BOX adoquery的问题关于insert into的! 请问如何从根本上撤消WIN2000默认的共享 如c$ ipc$ ADODataSet的CommandText字符串中的引号问题(在线等待) MDI小问题,请帮帮忙! 组件问题 关于用Delphi和SQL建立一个C/S数据库平台的问题 麻烦高手批改作业。(winsocket问题) MySQL8数据库登录 怎样使用adocommand实现事物控制? 等住救命!mysql与delphi问题!
//////////////////////备份
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;
用TStoreProc调