为什么我用ADOConnection连接数据库。connected为true.再为false.后
备份sql server数据库总告诉我数据库有人占用。ADOConnection设置一样。
这是为什么呀?那位大侠指点一下
备份sql server数据库总告诉我数据库有人占用。ADOConnection设置一样。
这是为什么呀?那位大侠指点一下
解决方案 »
- Delphi中如何把A,B两表在一个DBGRID中显示,而更新时只更新A表?
- 如何实现delphi与asp交互?
- 为何时间控件在程序为非活动时不工作了?
- 大家可好?我可是偷跑出来的
- 使用realplay ActiveX的问题
- 请高手读一下关于消息的代码!如何更正???
- 请教:这种情况应该用TList还是动态数组
- 招聘DELPHI程序员(广州)
- 关于枚举类型的简单问题???
- 如何遍历一个FORM中动态创建的checkbox控件群
- 如何用DELPHI实现RS232串口通讯一次发9位信息,即奇偶校验位人为规定为0或1?谢谢,在线等待!
- 重大事情发生!!!!-------100分大大方方的送出,心动不如行动吧!!
SQL.Clear;
SQL.Add(' exec sp_dropdevice ''Lower_bak''');
SQL.Add(' if not exists (select 1 from master..sysdevices where name=''Lower_bak'')');
SQL.Add(' EXEC sp_addumpdevice ''disk'', ''Lower_bak'',''e:\lower''');
SQL.Add(' USE Lower BACKUP DATABASE Lower to Lower_bak with INIT');
ExecSQL;
adoconnection.commected:=false;
adoconnection.free
SQL.Clear;
SQL.Add(' if exists (select 1 from master..sysdevices where name=''Lower_bak'')');
SQL.Add(' exec sp_dropdevice ''Lower_bak''');
SQL.Add(' EXEC sp_addumpdevice ''disk'', ''Lower_bak'',''e:\lower''');
SQL.Add(' USE Lower BACKUP DATABASE Lower to Lower_bak with INIT');
ExecSQL;
================================================================
GO!
GO!
GO!
1. ADOConnection1 连接你的业务数据库。
2. ADOConnection2 连接 MASTER 数据库。
3. ADOCommand1.Connection := ADOConnection2;
假设你的数据库名为: 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;