| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- $PBExportHeader$f_chk_login.srf
- global type f_chk_login from function_object
- end type
- forward prototypes
- global function boolean f_chk_login (string arg_msg)
- end prototypes
- global function boolean f_chk_login (string arg_msg);Boolean rslt = True
- IF sys_if_network = 1 THEN return rslt
- //Int arg_type
- String ls_host, ls_ip, ls_userid
- DateTime ldt_logintime, ldt_chktime
- Date ld_login, ld_chk, ld_
- Time lt_login, lt_chk
- Long cnt
- Boolean lb_reset = False, lb_login_allow = False
- SELECT host, ip, logintime, chktime, userid
- INTO :ls_host, :ls_ip, :ldt_logintime, :ldt_chktime, :ls_userid
- From sys_lck;
-
- IF sqlca.SQLCode <> 0 THEN
- //arg_msg = "查询用户在线信息失败,"+sqlca.sqlerrtext
- rslt = False
- GOTO ext
- END IF
- //临时的措施
- IF ls_userid <> '' THEN
- ld_login = Date(ldt_logintime)
- ld_chk = Date(ldt_chktime)
- IF DaysAfter (ld_chk, Today() ) > 1 THEN //默认退出
- lb_reset = True
- GOTO chkout
- END IF
- lt_login = Time(ldt_logintime)
- lt_chk = Time(ldt_chktime)
- IF SecondsAfter ( lt_chk, Now() ) > 3600 THEN //默认退出
- lb_reset = True
- GOTO chkout
- END IF
- chkout:
- IF lb_reset THEN
- f_update_login(0)
- lb_login_allow = True
- ELSE
- lb_login_allow = False
- arg_msg = "用户["+ls_userid+"]登录中..."
- END IF
- ELSE
- lb_login_allow = True
- END IF
- rslt = lb_login_allow
- ext:
- RETURN rslt
- end function
|