$PBExportHeader$f_update_login.srf global type f_update_login from function_object end type forward prototypes global function integer f_update_login (integer arg_type) end prototypes global function integer f_update_login (integer arg_type);Int rslt = 1 IF sys_if_network = 1 THEN RETURN rslt Long ll_cnt String ls_host, ls_ip String arg_msg IF arg_type = 1 THEN //登陆 UPDATE sys_lck SET host = :ls_host, ip = :ls_ip, logintime = getdate(), chktime = getdate(), UserID = :publ_operator; ELSEIF arg_type = 2 THEN //更新 SELECT count(*) INTO :ll_cnt FROM sys_lck Where UserID = :publ_operator; IF sqlca.SQLCode <> 0 THEN END IF IF ll_cnt = 0 THEN arg_msg = "其他用户已登录" rslt = 0 GOTO ext END IF UPDATE sys_lck SET chktime = getdate() Where UserID = :publ_operator; ELSE //注销 UPDATE sys_lck SET host = '', ip = '', logintime = NULL, chktime = NULL, UserID = ''; END IF IF sqlca.SQLCode <> 0 THEN IF sqlca.SQLNRows = 0 THEN INSERT INTO sys_lck (host, ip, chktime, logintime, userid) Values (:ls_host, :ls_ip, GETDATE(), GETDATE(), :publ_operator); IF sqlca.SQLCode <> 0 THEN ROLLBACK; ELSE COMMIT; END IF ELSE ROLLBACK; END IF ELSE COMMIT; END IF ext: RETURN rslt end function