سلام دوست عزیز منم مشکل شمارو داشتم ولی با کمک دوستان آقای ثباتی و کلاهدوز حل شد. تو برنامتون یک Adoconnection بزارین و اونو به master وصل کنین و یک ADOQUERY قرار بدین که به این ADOCONNECTION وصل بشه و کد زیر را در ADOQUERY در قسمت TString بنویسید :
SET NOCOUNT ON
DECLARE @strSQL varchar(255)
PRINT 'Killing Users'
PRINT '-----------------'
CREATE table #tmpUsers(
spid int,
eid int,
status varchar(30),
loginname varchar(50),
hostname varchar(50),
blk int,
dbname varchar(50),
cmd varchar(30))
INSERT INTO #tmpUsers EXEC sp_who
DECLARE LoginCursor CURSOR
READ_ONLY
FOR SELECT spid, dbname FROM #tmpUsers WHERE dbname ='YOUR DATABASENAM'
DECLARE @spid varchar(10)
DECLARE @dbname2 varchar(40)
OPEN LoginCursor
FETCH NEXT FROM LoginCursor INTO @spid, @dbname2
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
PRINT 'Killing ' + @spid
SET @strSQL = 'KILL ' + @spid
EXEC (@strSQL)
END
FETCH NEXT FROM LoginCursor INTO @spid, @dbname2
END
CLOSE LoginCursor
DEALLOCATE LoginCursor
DROP table #tmpUsers
PRINT 'Done'
SET QUOTED_IDENTIFIER OFF
SET ANSI_NULLS ON
USE Master RESTORE DATABASE YOURDATABASENAME FROM DISK='C:\Backup\backupdb.BAK' WITH REPLACE
بعد داخل برنامه دلفی یک Button قرار بدین. و بنویسین
;ADOQuery1.ExecSQL
همین.
امیدوارم که مشکل شمام حل بشه.
موفق باشین.