以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于数据库实时更新问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=159674) |
|
-- 作者:eha_he -- 发布时间:2021/1/4 12:37:00 -- 关于数据库实时更新问题 你好:咨询下问题出来哪里。 我是高级开发版开发的程序,设置了服务器端口和客户端。逻辑是客户端某行有修改,就通知服务器,服务器再通知在线的所有人该行有修改,经常会弹出错误。 在服务器的OPENQQ服务端,ReceivedMessage程序如下 If msg.StartsWith("&#") AndAlso msg.EndsWith("#&") Then \'通知所有在线客户该表对于的数据需要重新加载 \'格式是 &#表名:_Identify#& For Each User As QQUser In QQserver.Users QQServer.Send(User.Name,msg) Next End If 在客户端的OPENQQ客户端,ReceivedMessage程序如下 Dim msg As String = e.Message If msg.StartsWith("&#") AndAlso msg.EndsWith("#&") Then \'该行数据要加载到系统中 Dim Key As String = msg.SubString(2,msg.Length - 4) Dim pts() As String = Key.Split(":") If pts.Length = 3 Then Dim dr As DataRow = DataTables(pts(1)).Find("[_Identify] = " & pts(2)) If dr IsNot Nothing Then dr.Load(False) \'重新加载此行 \' PopMessage(pts(0) & "修改了表:" & pts(1) & pts(2) & "的数据","提示", PopIconEnum.Infomation, 5) Else DataTables(pts(1)).AppendLoad("[_Identify] = " & pts(2)) \'追载新增加的行 \' PopMessage(pts(0) & "增加了表:" & pts(1) & pts(2) & "的数据","提示", PopIconEnum.Infomation, 5) End If End If End If 而某人修改了一行数据,会发信息给服务器。程序如下: Dim Key As String key = _UserName & ":" & "资金往来对账流水表" & ":" & dr("_Identify") QQClient.Send("&#" & key & "#&") \'通知其他人这行有修改 会不会是因为服务器同事通知所有在线的人要更新该行导致?大概是十多个人同时使用。非常感谢 图片如下: --- 数据库被用户锁定,不能打开。 |
|
-- 作者:eha_he -- 发布时间:2021/1/4 14:18:00 -- 有时候还会弹出 |
|
-- 作者:有点蓝 -- 发布时间:2021/1/4 14:37:00 -- access数据库?access的并发数很少的,正常使用也就是5~6个用户。用户数多建议使用SQL server |
|
-- 作者:eha_he -- 发布时间:2021/1/4 15:17:00 -- 是
|
|
-- 作者:eha_he -- 发布时间:2021/1/4 15:18:00 -- 如果就用
|
|
-- 作者:有点蓝 -- 发布时间:2021/1/4 15:28:00 -- 没有办法,这种是天生的硬伤 |
|
-- 作者:eha_he -- 发布时间:2021/1/4 15:47:00 -- SQL server 能支持多少并发数? [此贴子已经被作者于2021/1/4 15:47:50编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2021/1/4 16:20:00 -- 几百个没有问题 |