$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