begin
try
with customerdata do
begin
datamain.Close;
datamain.SQL.Clear;
datamain.SQL.Add('use master');
datamain.SQL.Add('ALTER DATABASE hangqian SET OFFLINE WITH ROLLBACK IMMEDIATE');
datamain.SQL.Add('RESTORE DATABASE hangqian FROM DISK ='''+edit2.text+'''');
datamain.SQL.Add('ALTER DATABASE hangqian SET ONLINE WITH ROLLBACK IMMEDIATE');
datamain.SQL.Add('use hangqian');
try
datamain.ExecSQL;
datamain.Close;
except
Application.MessageBox('还原数据库出错!','错误!',mb_ok+mb_iconError);
end;
MessageDlg('数据库还原成功!',mtConfirmation, [mbOK], 0);
edit2.Text:='';
end;
except
raise;
end;
try
with customerdata do
begin
datamain.Close;
datamain.SQL.Clear;
datamain.SQL.Add('use master');
datamain.SQL.Add('ALTER DATABASE hangqian SET OFFLINE WITH ROLLBACK IMMEDIATE');
datamain.SQL.Add('RESTORE DATABASE hangqian FROM DISK ='''+edit2.text+'''');
datamain.SQL.Add('ALTER DATABASE hangqian SET ONLINE WITH ROLLBACK IMMEDIATE');
datamain.SQL.Add('use hangqian');
try
datamain.ExecSQL;
datamain.Close;
except
Application.MessageBox('还原数据库出错!','错误!',mb_ok+mb_iconError);
end;
MessageDlg('数据库还原成功!',mtConfirmation, [mbOK], 0);
edit2.Text:='';
end;
except
raise;
end;
解决方案 »
- 关于TEdit控件输入问题请教
- 各位大虾 请教个问题 关于数据模块的问题
- 请问怎么把主程序里的东西写到DLL里
- 答的多,分得多?报表工具问题
- 谁能帮我看看我的这个程序,我都要风了。
- 能分析出DLL中封装了那些函数吗
- $$【请问 opendialog1.FileName<>" 表示什么意思 我的程序到这里报错】在线恭候各位大侠
- 请问这个问题
- 土土问一句:TListBox有Items Changed事件吗,当Items项改变时触发.谢了,先!
- 我刚装完Dephi5,还没有开始学,希望高手们能给提供一些初学的资料。怎样才能学好它.
- 如何设置richedit输入行的行高?(在线)
- 数据程序程序移到别的电脑上的问题
sql.add里面的代码
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');
//-------------------端开mould库------------------------------------------
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Text:='ALTER DATABASE rxd_CRM SET OFFLINE WITH ROLLBACK IMMEDIATE';
Qry.Prepared;
Qry.ExecSQL;
//------------------- 端开mould库结束-------------------------------------
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
//-------------------重新连接mould库------------------------------------
Qry.Close;
Qry.SQL.Clear;
Qry.SQL.Text:='ALTER DATABASE rxd_CRM SET ONLINE WITH ROLLBACK IMMEDIATE';
Qry.Prepared;
Qry.ExecSQL;
//-------------------重新连接mould库结束--------------------------------
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;