各位大虾,小弟现在要在程序中实现数据库的备份和恢复,请问如何实现呀。我现在找到了一个关于数据库备份的源代码,已经试验成功。即使用SQL语句
'BACKUP DATABASE databasename TO DISK = ''' + strPathName + Vartostr(FormatDateTime('yyyy-mm-d_hh_mm', now)) + '.bak'''
请问如何实现数据库的恢复,请各位大虾赐教!多谢了!
'BACKUP DATABASE databasename TO DISK = ''' + strPathName + Vartostr(FormatDateTime('yyyy-mm-d_hh_mm', now)) + '.bak'''
请问如何实现数据库的恢复,请各位大虾赐教!多谢了!
解决方案 »
- 哀求《参透Delphi/Kylix》附书光盘
- 怎样添加一个空值到数据库中
- SQL与delphi通信的问题!!谢谢!!
- delphil7開發出的程序,用審麼工具可以作安裝程序!!!!!!!!!!!!!!
- 请教如何使用EurekaLog?
- dot net 和 delphi 相结合相结合
- 在delphi7中的dbgrid控件中怎样显示一个checkbox样式的字段?????
- 100分请教一个简单奇怪的问题
- 有谁知道ACCESS支持的容量为多大?几个G?
- 急需DevExpress的TDBTreeView的使用例程Demo,Help文档(中文)!!!!
- 控制纪录修改与删除问题?
- 如何在程序中控制某个服务程序的启动和停止?
'] FROM DISK = N'''+filename+''' WITH FILE = 1, NOUNLOAD , STATS = 10, RECOVERY , REPLACE ';
for I:=0 to Application.ComponentCount-1 do
Begin
if Components[I] is TAdoDataSet then
TAdoDataSet(Components[I]).Close;
if Components[I] is TADOQuery then
TADOQuery(Components[I]).Close;
if Components[I] is TADOTable then
TADOTable(Components[I]).Close;
end;
ADOConnection1.Close;
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='
+G_DBServerPsw+';Persist Security Info=True;User ID='
+G_DBServerUser+';Initial Catalog=master;Data Source='
+G_ComputerName;
ADOConnection1.Connected:=True;
ADOQuery1.Close;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('sp_who');
ADOQuery1.Open ;
ADOQuery1.Filter :='dbname='''+AccountVar.DataBaseName+''' ';
ADOQuery1.Filtered :=true;
ADOQuery1.First ;
while not ADOQuery1.Eof do
begin
ADOCommand1.CommandText:='kill '+ADOQuery1.FieldByName('spid').AsString;
try //使用错误处理是因为在kill时链接可能已经断开了
ADOCommand1.Execute ; //kill 其它连接
except
end;
ADOQuery1.Next ;
end;
ADOQuery1.Close ;
ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add(S);//restore语句
try
Screen.Cursor:=crSQLWait;
ADOQuery1.ExecSQL ;
MessageBox(Handle,'恢复成功!','信息',MB_OK+MB_ICONINFORMATION);
finally
Screen.Cursor:=crDefault;
G_CloseDirect:=True;
end;