以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]查看还登录在系统中的用户  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=176441)

--  作者:lgj716330
--  发布时间:2022/4/13 12:38:00
--  [求助]查看还登录在系统中的用户
想知道还有哪些用户登录在系统中没有退出,要怎么弄
--  作者:有点蓝
--  发布时间:2022/4/13 13:35:00
--  
用户表增加一个登录时间列,登录窗口确定按钮给这个列赋值。项目beforecloseproject事件清空对应用户这个列的值。

判断如果登录时间列有值,说明没有退出

--  作者:lgj716330
--  发布时间:2022/4/13 16:36:00
--  
嗯 ,我在beforecloseproject中按下面处理,没删除成功
DataTables("在线用户").DeleteFor("用户=\'" & _UserName & "\'")
DataTables("在线用户").RemoveFor("用户=\'" & _UserName & "\'")
DataTables("在线用户").save()
[此贴子已经被作者于2022/4/13 16:35:54编辑过]

--  作者:有点蓝
--  发布时间:2022/4/13 16:52:00
--  
DataTables("在线用户").DeleteFor("用户=\'" & _UserName & "\'")
DataTables("在线用户").save()

--  作者:lgj716330
--  发布时间:2022/4/13 19:20:00
--  
直接那样删除还是不行,通过下面这种方式解决了
Dim cmd2 As New S QLCommand
cmd2.C
cmd2.C ommandText = "U pdate {在线用户} Set 登录时间 = Null Where 用户 = \'" & _UserName & "\'"
cmd2.E xecuteNonQuery()

--  作者:lgj716330
--  发布时间:2022/4/14 13:49:00
--  
全局表事件DataRowAdding
If e.DataTable.Name <> "系统操作日志"  And e.DataTable.Name <> "在线用户" Then
    Dim da As DateTime = Date.Now()
    Dim dr1 As DataRow
    dr1 = DataTables("系统操作日志").Find("用户 = \'" & _UserName & "\' and 操作表 = \'" & e.DataTable.Name & "\' and 时间 = \'" & da & "\'","时间 Desc")
    If dr1 Is Nothing Then
        Dim dr As DataRow = DataTables("系统操作日志").AddNew()
        dr("用户") = _UserName
        dr("操作表") = e.DataTable.Name
        dr("操作列") = Nothing
        dr("时间") = Date.Now
        dr("操作内容") = "该用户在此表进行了增加行操作"
    End If
End If

想实现在同一个时间里进行同一个操作的,如批量导入数据增加行,日志表中只增加一条记录就可以,上面代码还是会增加多条日志
[此贴子已经被作者于2022/4/14 13:53:18编辑过]

--  作者:有点蓝
--  发布时间:2022/4/14 14:05:00
--  
举例具体数据说一下,比如什么时间属于同一个时间?时间值有时分秒?Date.Now()有毫秒的
--  作者:lgj716330
--  发布时间:2022/4/14 14:10:00
--  
按分钟,如2022-04-13 12:27
--  作者:有点蓝
--  发布时间:2022/4/14 14:23:00
--  
那要这样设置查询条件:时间 >=\'2022-04-13 12:27\' and 时间 <\'2022-04-13 12:28‘’