如何强行断开数据库的连接(在线等待 急)
如何强行断开本数据库的所有连接? 问题点数:50、回复次数:14Top
1 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-08-01 16:36:11 得分 0
ADO连接控件的active属性设置为false就可以了。
如:ADOConnection.active:= false;Top
2 楼chenxuqian(aQ)回复于 2005-08-01 16:37:37 得分 0
关闭数据库连接Top
3 楼aladdin2006(回答问题不接分,不想要分,只为提高技术,解决问题)回复于 2005-08-01 16:40:37 得分 0
所有ADOQUERY 的CONNECT 指向一个 ADOCONNETION 将ADOCONNETION的CONNET 设为FALSE 就全部断开Top
4 楼zjh527()回复于 2005-08-01 16:45:14 得分 0
我只的是断开其他程序连接本数据库,因为我的数据库还有其他程序访问
有会的吗急呀Top
5 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-08-01 16:49:58 得分 0
那就把需要断开的ADOQuery或者ADOTable等的connectinon属性设置为空,把active属性设置为false;Top
6 楼hqhhh(枫叶)回复于 2005-08-01 16:51:56 得分 0
设置ADOConnection.active:= false;即可!
Top
7 楼michaelsheyong(骷髅)回复于 2005-08-01 16:52:00 得分 30
procedure ClearMSSQLUser(DBname : String);
var
SelectQuery : TAdoQuery;
ClearProUser : TAdoQuery;
begin
try
SelectQuery :=TAdoQuery.Create(nil);
ClearProUser:=TAdoQuery.Create(nil);
SelectQuery.Connection :=SqlConnection;
ClearProUser.Connection:=SqlConnection;
SelectQuery.SQL.Clear;
ClearProUser.SQL.Clear;
SelectQuery.SQL.Add('select * from dbo.sysobjects where '+
'id = object_id(N''[dbo].[p_killspid]'') and OBJECTPROPERTY(id, N''IsProcedure'') = 1');
SelectQuery.Open;
if SelectQuery.Eof then
begin
SqlCommand.CommandText:='create proc p_killspid ' +
'@dbname sysname ' +
'as '+
'declare @s nvarchar(1000) ' +
'declare tb cursor local for ' +
'select s=''kill ''+cast(spid as varchar) '+
'from master..sysprocesses '+
'where dbid=db_id(@dbname) '+
'open tb '+
'fetch next from tb into @s '+
'while @@fetch_status=0 '+
'begin '+
' exec(@s) '+
' fetch next from tb into @s '+
'end '+
'close tb '+
'deallocate tb';
SqlCommand.Execute;
end;
SqlCommand.CommandText:='exec p_killspid '''+DBname+'''';
SqlCommand.Execute;
finally
freeandnil(SelectQuery);
freeandnil(ClearProUser);
end;
end;
给分Top
8 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-08-01 16:53:31 得分 0
你所谓的其他程序是指什么??????如果都是独立的程序(不共用一个ADOCONNECTION)。
你把需要断开的程序的ADOCONNECTION的CONNECTED属性设置为false就可以了。Top
9 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-08-01 16:55:53 得分 0
设置ADOConnection.active:= false;即可!
TO:hqhhh(枫叶)
老兄,你怎么和我范同样的错误啊,都晕菜了。^_^Top
10 楼kevin_wzh(kevin)回复于 2005-08-01 16:58:50 得分 10
查看数据库里用户和进程的信息
sp_who
查看SQL Server数据库里的活动用户和进程的信息
sp_who 'active'
查看SQL Server数据库里的锁的情况
sp_lock
进程号1--50是SQL Server系统内部用的,进程号大于50的才是用户的连接进程.
spid是进程编号,dbid是数据库编号,objid是数据对象编号
查看进程正在执行的SQL语句
dbcc inputbuffer ()
推荐大家用经过改进后的sp_who3过程可以直接看到进程运行的SQL语句
sp_who3
检查死锁用sp_who_lock过程
sp_who_lock Top
11 楼kevin_wzh(kevin)回复于 2005-08-01 17:00:21 得分 0
上面是小弟为你找的:SQL Server 管理常用的SQL
引用http://fengyu.china.com/sqlserver_dict.htmTop
12 楼kevin_wzh(kevin)回复于 2005-08-01 17:02:09 得分 0
spid是进程编号
要断掉连接用KILL (spid编号),你可以看看,我以前写过。Top
13 楼cdsgajxlp(起名很难)回复于 2005-08-01 19:40:21 得分 10
http://community.csdn.net/Expert/topic/4036/4036814.xml?temp=.2705957Top
14 楼zjh527()回复于 2005-08-01 21:04:51 得分 0
谢谢,今天又会了一招Top




