以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]OpenQQ服务器端用户修改问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85847)

--  作者:倪惠明
--  发布时间:2016/6/3 16:42:00
--  [求助]OpenQQ服务器端用户修改问题
OpenQQ服务器端和客户端都使用外部SQL数据库,在客户端进行用户修改和添加后,服务器端是否必须启动才能使用,是否能像即时同步数据一样,将修改后的用户信息更新到服务器端中。请指教。谢谢!
--  作者:倪惠明
--  发布时间:2016/6/3 17:00:00
--  
专家们,干嘛不理我呀?
--  作者:大红袍
--  发布时间:2016/6/3 17:04:00
--  

 得看你服务器端的登陆代码是怎么写的,如果是直接find,要换成sqlFind,这样就不需要重启或者刷新数据

 

http://www.foxtable.com/help/topics/2969.htm

 


--  作者:倪惠明
--  发布时间:2016/6/3 17:22:00
--  
非常感谢
--  作者:倪惠明
--  发布时间:2016/6/8 9:44:00
--  
如果是直接find,要换成sqlFind,出现登录名错误提示,是何原因?
--  作者:倪惠明
--  发布时间:2016/6/8 10:48:00
--  
将sqlfind 改回 find后又一切正常。
--  作者:倪惠明
--  发布时间:2016/6/8 11:09:00
--  
帮帮忙呀
--  作者:大红袍
--  发布时间:2016/6/8 11:32:00
--  

 贴出写的代码。

 

 调试技巧 http://www.foxtable.com/help/topics/1485.htm

 

 不会做,上传实例。


--  作者:倪惠明
--  发布时间:2016/6/8 15:04:00
--  
服务器的 userlogging 代码为:
Dim pts() As String = e.UserName.Split(".")
Dim dr1 As DataRow
dr1 = DataTables("授权表").Find("Group = \'" & pts(0) & "\' And Name = \'" & pts(1) & "\'")
If dr1 Is Nothing  Then \'判断此用户不存在
    e.Message  = "用户名错误!" \'返回给登录者的提示信息
    Return
End If
If dr1("PassWord") <> e.Password Then \'如果密码错误
    e.Message  = "登录密码错误!" \'返回给登录者的提示信息
    Return
End If
e.Success = True \'允许用户登录
\'添加所有同事为好友

For Each dr2 As DataRow In DataTables("授权表").DataRows
    Dim nm As String =  dr2("Group") & "." & dr2("Name")
    If nm <> e.UserName Then \'如果不是登录者本人
        e.Buddies.Add(nm)
    End If
Next

如果将find 改为sqlfind 则出现用户名错误提示

--  作者:倪惠明
--  发布时间:2016/6/8 16:42:00
--  
找到原因了,SQLfind 的字段名需用【】括起来才不会出错。