请教高手:在SERVER端执行数据库恢复操作时,CLIENT端出现”连接失败“提示。
SERVER端程序语句如下:
user master
exec killspid 'aa'
restore database aa from disk='c:\aa.bak' with replace
use aa
当以上语句执行后,CLIENT端对数据库aa操作时,会出现”连接失败”的提示。CLIENT程序只能中止后重新运行才能对数据库aa操作。
CLIENT端是用DELPHI开发的,用ADO控件连接数据库。
我想将系统出现的”连接失败”的提示改掉,也就是要实现当SERVER端执行数据库恢复操作时,CLIENT端若要对数据库操作,则出现“数据库连接失败!”的提示并自动中止CLIENT端运行。
请教高手:要如何实现以上功能?
附killspid存储过程的语句如下:
create proc killspid (@dbname varchar(20))
as
begin
declare @sql nvarchar(500)
declare @spid int
set @sql='declare getspid cursor for
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
declare @a varchar(100)
while @@fetch_status < >-1
begin
set @a='kill '+rtrim(@spid)
exec(@a)
fetch next from getspid into @spid
end
close getspid
deallocate getspid
end