我知道啊!当然是ASP的啦!用ADODB.Connection对象的Execute吗! Example: `refresh.asp Set MyConn=Server.CreateObject("ADODB.Connection") MyConn.Open "DSN=XXXX" MyConn.Execute "Update XXX SET LastRefresh=GetDate() WHERE UserUD=" & Session("ID") MyConn.Close `Query.asp Set MyConn=Server.CreateObject("ADODB.Connection") MyConn.Open "DSN=XXXX" Set RS=MyConn.Execute("SELECT UserID FROM XXX WHERE DateDiff(GetDate(), LastRefresh, ??)<30" '注:“??”处还应有一个参数,是指定返回值用何种格式(秒、分、时、天等等),我记不不大清楚是几了,可以查查SQL Server的参考这样RS中就有了在线用户的名单
如果要显示在线的具体用户的网名,我的方法是,在框架中放一个页面,设置为每隔5秒或10秒刷新一次,每次都在服务器端的数据库里面刷新一次自己的时间,然后有用户查询在线人名单的时候,就把时间差小于一定值(比如10秒、30秒,视用户对象及网络状况而定)的用户显示出来(用SQL语言中的DateDiff函数)
Example:
`refresh.asp
Set MyConn=Server.CreateObject("ADODB.Connection")
MyConn.Open "DSN=XXXX"
MyConn.Execute "Update XXX SET LastRefresh=GetDate() WHERE UserUD=" & Session("ID")
MyConn.Close
`Query.asp
Set MyConn=Server.CreateObject("ADODB.Connection")
MyConn.Open "DSN=XXXX"
Set RS=MyConn.Execute("SELECT UserID FROM XXX WHERE DateDiff(GetDate(), LastRefresh, ??)<30" '注:“??”处还应有一个参数,是指定返回值用何种格式(秒、分、时、天等等),我记不不大清楚是几了,可以查查SQL Server的参考这样RS中就有了在线用户的名单