var
wl: string;
begin
wl := 'use master restore database Exam from disk=';
with XTWHDataM do
begin
ExamADOC.Connected := false;
wl := wl + '''' + DirE.Text + '''' + 'with replace';
adoc.execute(wl); //ADOc是另一个ADOConnection
ExamADOC.Connected := true;
end;
MessageBox(Handle,'数据恢复完毕!','提示信息...',MB_ICONINFORMATION);
HuiFuForm.Close;
end;按下恢复按钮后,程序几停止响应了,过了10几秒钟后才弹出数据恢复完毕的对话匡可是SQL Server中的数据却一点也没有被恢复,这是怎么回是????
wl: string;
begin
wl := 'use master restore database Exam from disk=';
with XTWHDataM do
begin
ExamADOC.Connected := false;
wl := wl + '''' + DirE.Text + '''' + 'with replace';
adoc.execute(wl); //ADOc是另一个ADOConnection
ExamADOC.Connected := true;
end;
MessageBox(Handle,'数据恢复完毕!','提示信息...',MB_ICONINFORMATION);
HuiFuForm.Close;
end;按下恢复按钮后,程序几停止响应了,过了10几秒钟后才弹出数据恢复完毕的对话匡可是SQL Server中的数据却一点也没有被恢复,这是怎么回是????
解决方案 »
- 求助:MDI窗口如何进行分割?
- 请问如何动态生成n个控件?n是由数据库里读出的.
- 加夜班的辛苦了,来接分吧!
- 各位大伙帮忙看看,为什么系统提示 Undeclared identifier: 'CreateOleObject' 谢谢
- int型4位的最大数是多少?
- 怎样取得RichEdit.lines[idx]开始处在Richedit中的位置?
- 托盘程序弹出菜单后为什么关不了啊(在线求救!!!!)
- 有关TField的BGetText事件问题,请高手过招!!!!
- 如何使用CreateThread
- 请教大家,label 100,200;是什么意思?
- 关于TDBGRID的问题,高分求救!不够再加
- 如何将数据库中一张一张表导出生成一个.db文件,还能再导回?
1.ADOConnection1 连接你的业务数据库。
2. ADOConnection2 连接 MASTER 数据库。
3. ADOCommand1.Connection := ADOConnection2;
这里是通过在Master中执行SET OFFLINE的方法将指定的数据库关闭,同时回滚
当中的事务,使连接断开,然后进行备份,完成后再将连接打开。具体代码如下假设你的数据库名为: DataBaseName
Button.OnClick:
begin
ADOConnection1.Connected := False;
ADOCommand1.CommandText := 'BACKUP DATABASE DataBaseName TO DISK = ' + #39 + 'C:\KKK.BAK' + #39;
ADOCommand1.Execute;
ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET OFFLINE WITH ROLLBACK IMMEDIATE';
ADOCommand1.Execute;
ADOCommand1.CommandText := 'RESTORE DATABASE DataBaseName FROM DISK = ' + #39 + 'C:\KKK.BAK' + #39;
ADOCommand1.Execute;
ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET ONLINE WITH ROLLBACK IMMEDIATE';
ADOCommand1.Execute;
ADOConnection1.Connected := True;
ADOTable1.Active := true;
end;
备份
CREATE PROCEDURE myproc_back
@path_info varchar(100)
AS
backup database mydatabase to disk=@path_info
GO
恢复
CREATE PROCEDURE myproc_rest
@path_info varchar(100)
AS
restore database mydatabase from disk=@path_info
GO
程序中运行存储过程就是了
if savedialog1.execute then
begin
......
query1.sql.add('exec myproc_back '''+savedialog1.filename+'''');
query1.execsql;
end;