Foxtable(狐表)用户栏目专家坐堂 → 全局变量和静态变量问题


  共有3771人关注过本帖树形打印复制链接

主题:全局变量和静态变量问题

帅哥哟,离线,有人找我吗?
ycs5801
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:911 积分:6617 威望:0 精华:0 注册:2009/6/24 9:44:00
全局变量和静态变量问题  发帖心情 Post By:2022/5/12 20:44:00 [显示全部帖子]

全局变量问题:多个用户分别登录后,通过yonghuxingming = dr("用户姓名"),向全局变量yonghuxingming赋值,将自己的姓名赋给全局变量。如果用户a赋值后,用户b又登录,这个时候通过messagebox.show显示yonghuxingming的值,为什么用户a显示的a的用户名,b显示的是b的。既然是全局变量,不是应该后边的人登录后再赋值,前边的人的变量也会改变吗?

静态变量问题:
Static fzfilter As String

If e.PostValues.Count > 0 Then 
    If e.PostValues.ContainsKey("船舶代理") Then
        flt = "船舶代理 = '" & e.PostValues("船舶代理") & "'" '合成条件
    End If
   
Else
    flt = fzfilter
End If

If flt > "" Then
    fzfilter = flt 
......

这里边,我是为了实现后边的翻页传值,把每次的筛选条件flt传给fzfilter。但是实际不同用户先后筛选后翻页时,fzfilter会混乱,就是传值出现问题,请问怎么修改?

 回到顶部
帅哥哟,离线,有人找我吗?
ycs5801
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:911 积分:6617 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2022/5/12 21:35:00 [显示全部帖子]

那我第二个问题,静态变量,为什么会翻页时会出现问题。比如说a用户我筛选后,翻页,从第一页翻到第二页之后,用户b开始筛选,也从第一页翻到第二页,这时用户a点下一页,筛选条件就变为用户b的筛选条件的第二页了。

 回到顶部
帅哥哟,离线,有人找我吗?
ycs5801
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:911 积分:6617 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2022/5/12 21:59:00 [显示全部帖子]

我这个应该算web服务了,那这样说第二个问题就是正常了,那第一个问题怎么解释呢?

 回到顶部
帅哥哟,离线,有人找我吗?
ycs5801
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:911 积分:6617 威望:0 精华:0 注册:2009/6/24 9:44:00
我的实例  发帖心情 Post By:2022/5/13 10:06:00 [显示全部帖子]


以下内容是专门发给有点蓝浏览


看看我的实例,你用刘德华和张学友分别登录,密码都是888,然后先后浏览主页里的查询船舶,我这边的结果是全局变量用户姓名一直不变,每个人登录之后就 不变了。

 回到顶部
帅哥哟,离线,有人找我吗?
ycs5801
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:911 积分:6617 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2022/5/13 11:03:00 [显示全部帖子]

好的老师,那您看替代这种方法用什么好呢?用cookie判断当登录用户名,然后再去用户资料里去查找这个人的相关信息,这样最科学吗?

 回到顶部
帅哥哟,离线,有人找我吗?
ycs5801
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:911 积分:6617 威望:0 精华:0 注册:2009/6/24 9:44:00
  发帖心情 Post By:2022/5/13 11:07:00 [显示全部帖子]

f e.PostValues.Count > 0 Then 
    If e.PostValues.ContainsKey("船舶代理") Then
        flt = "船舶代理 = '" & e.PostValues("船舶代理") & "'" '合成条件
    End If
   
Else
    flt = fzfilter
End If

If flt > "" Then
    fzfilter = flt 
......

还有上边这个问题,我看帮助中是用cookies传值筛选条件的,但是最后用wb.ClearCookie()这个会把整个cookies都删掉。

 回到顶部