请问怎么给一个server上锁 那就用事务更改所有表,保持wait状态,等你想结束的时候在回滚所有事务 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 begin tran --add,edit,remove等操作if @@error=0 commitelse rollback 楼上各位说的我还有点一知半解,用事务更改所有表,怎么处理,要给表加特殊字段吗,还有第三位说的代码还是看不太懂地说,需要进入特殊库玛,我是用java开发的,因为对多线程操作没有以前没有任何经验,所以能否说的详细些呢? 看看这个,估计对你有用!!!!http://hi.baidu.com/windy8848/blog/item/0c0ecc3def7c81c19f3d62a5.html 加一表.currentClientOnline(id int,clientIP varchar(50),mac varchar(5),isOnline bit,activeTime datetime not null default getdate())记录当前clint连接的时间,ip,在线等信息。在当前client断开时,将isOnline设置为否新的client连接时,查询此表中是否存在一条 isOnline=1的记录,如果存在,则检测这条记录的ip是否当前client的ip,如果是,则允许使用,如果不是则不允许使用。如果不存在一条 isOnline=1的记录,则允许当前client使用,并增加一条记录,记录当前client的信息,并置 isOnline状态为true.在对这个表操作时加上事务处理。当然,如果client的ip可能是动态的,那么意外断线时,可能造成表中会有一条在线为true的记录,而掉线的client连不上,其它的client也连不上。 那么可以用mac代替ip. 或者, 在client中操作时,定时更新当前记录的 activeTime.服务器上启动job, 删除在线超时的记录,比如某个client在20.50连上去,client端 程序,每3分钟更新此记录activeTime为当前时间,假设 21.21 它更新了activetime.在 21.23,这个client掉线了,那么它是意外掉线,应该允许它能再次连上服务器执行未完成的工作,此时其它client不能上去。那么从它掉线起10分钟留做它重新连接时间,job中设置 delete from currentClientOnlie WHERE datediff(mi,activeTime,getdate())>10 and isOnline = 1即,如果超过10分钟它还没连上,就认为它连不上了,就删除这条记录,或者update其isOnline=0, 就把资源放出来,给其它client使用。如果10分钟内它连上了,则job还没释放资源时,client端 程序又定时刷 actiteTime,则保证了其掉线重连后资源继续使用。 如何实现以下需求? 如何在SSIS中设置表名变量 子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的 ADO問題 Sql2000数据库“搬家”问题,请教高的呀!为何“主人”不一样了 请问各位高手,以.db为文件扩展名的是什么数据库. 有没有办法不分离数据库来进行数据库的备份 如何在SQL server 2000里实现自动编码以及编码自动更新? 关于exec master..xp_cmdshell 'bcp……'问题,请高手帮忙 设置oracle的internal密码 求一条SQL语句 帮忙分析一个操作
--add,edit,remove等操作
if @@error=0
commit
else
rollback
http://hi.baidu.com/windy8848/blog/item/0c0ecc3def7c81c19f3d62a5.html
currentClientOnline
(id int,
clientIP varchar(50),
mac varchar(5),
isOnline bit,
activeTime datetime not null default getdate()
)
记录当前clint连接的时间,ip,在线等信息。
在当前client断开时,将isOnline设置为否新的client连接时,查询此表中是否存在一条 isOnline=1的记录,如果存在,则检测这条记录的ip是否当前client的ip,如果是,则允许使用,如果不是则不允许使用。
如果不存在一条 isOnline=1的记录,则允许当前client使用,并增加一条记录,记录当前client的信息,并置 isOnline状态为true.在对这个表操作时加上事务处理。当然,如果client的ip可能是动态的,那么意外断线时,可能造成表中会有一条在线为true的记录,而掉线的client连不上,其它的client也连不上。 那么可以用mac代替ip.
或者, 在client中操作时,定时更新当前记录的 activeTime.服务器上启动job, 删除在线超时的记录,比如某个client在20.50连上去,client端 程序,每3分钟更新此记录activeTime为当前时间,假设 21.21 它更新了activetime.在 21.23,
这个client掉线了,那么它是意外掉线,应该允许它能再次连上服务器执行未完成的工作,此时其它client不能上去。那么从它掉线起10分钟留做它重新连接时间,job中设置 delete from currentClientOnlie WHERE datediff(mi,activeTime,getdate())>10 and isOnline = 1
即,如果超过10分钟它还没连上,就认为它连不上了,就删除这条记录,或者update其isOnline=0, 就把资源放出来,给其它client使用。如果10分钟内它连上了,则job还没释放资源时,client端 程序又定时刷 actiteTime,则保证了其掉线重连后资源继续使用。