我想对SQL数据库做备份还原,我应该怎么用代码实现,,,,,,请给个源码,本人新手,先谢谢了,请各位大侠帮个忙.............
解决方案 »
- 在DELPHI下如何使用AcceptEx函数呢?那位大侠能帮帮我呢!!
- 郁闷,delphi专家分1999分。就差那么一分加裤头。散分200!
- 有关delphi7.0的问题?
- 高手来啊高手来!怎么把高手的数据库放到treeview里面去?
- 为什么我用ado 的存储过程怎样也行不通?请各位高手帮忙!
- IDIPwatch的使用??
- 一个关于Delphi中鼠标指针的问题,我没查到帮助,请大家帮我看看啊!!!
- 低价出让基于RealMagic的VOD开发包
- 请教一个关于EXCEL的问题(谁知道?)
- 非主窗体无法保持总在最前端!有没有好办法!
- 关于dbgrideh合计,后面可不可以插入单位
- 关于用Qreport显示dbgrid中的信息的问题
下面的例子是我贴来的,不知道能不能用,不过大概可以起个引导作用。procedure TBak.btnRestoreClick(Sender: TObject);
var
Qry:TADOQuery;
begin
if FileExists(self.edtReStorePath.Text) then
begin
DM.Conn.Connected:=False; //断开系统数据库连接
Qry:=TADOQuery.Create(self);
Qry.CommandTimeout:=120;
//把连接转移到master库
Qry.ConnectionString:='Provider=SQLOLEDB.1;Password='+Login.GetDBServerInfo('Pwd')+';Persist Security Info=True;User ID='+Login.GetDBServerInfo('User')+';Initial Catalog=master;Data Source='+Login.GetDBServerInfo('Server');
//-------------------端开rxd_CRM库------------------------------------------
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Text:='ALTER DATABASE rxd_CRM SET OFFLINE WITH ROLLBACK IMMEDIATE';
Qry.Prepared;
Qry.ExecSQL;
//------------------- 端开rxd_CRM库结束-------------------------------------
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Text:='RESTORE DATABASE rxd_CRM FROM DISK='''+self.edtReStorePath.Text+''' with replace';
Qry.Prepared;
try
Qry.ExecSQL;
Login.MsgInfo('成功恢复数据!');
finally
//-------------------重新连接rxd_CRM库------------------------------------
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Text:='ALTER DATABASE rxd_CRM SET ONLINE WITH ROLLBACK IMMEDIATE';
Qry.Prepared;
Qry.ExecSQL;
//-------------------重新连接rxd_CRM库结束--------------------------------
Qry.Free;
DM.Conn.ConnectionString:=Login.GetDBServerInfo('DBStr');
try
DM.Conn.Connected:=True;
except
Login.MsgError('连接数据库失败,请尝试重启系统!');
end;
end
end
else
begin
Login.MsgInfo('数据文件不存在,请重新选择!');
self.edtReStorePath.SetFocus;
end;
end;