以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于通过QQopen实现网络编号的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90777) |
-- 作者:9602084 -- 发布时间:2016/9/21 15:25:00 -- [求助]关于通过QQopen实现网络编号的问题 服务器端 receivedmessage 代码如下 Dim msg As String = e.Message If msg.StartsWith("##") And msg.EndsWith("##") Then \'收到请求档案编号信号 Dim key As String = msg.Substring(2,msg.length -4) msg = "OK##" Dim dr As DataRow If key Like "######"Then dr= DataTables("档案编号统计").find("档案编号 = \'" & keys(0) & "\'") If dr IsNot Nothing Then dr("数量") = dr("数量") +1 For i As Integer= dr("数量") To 1 Step -1 If dr("顺序号登记").contains( format(i,"00") & "|" ) = False Then msg = msg & ";" & Format(i,"00") dr("顺序号登记") = dr("顺序号登记") & format(i,"00") & "|" Exit For End If Next Else Tables("档案编号统计").addnew Tables("档案编号统计").Current("档案编号") = keys(0) Tables("档案编号统计").Current("数量") = 1 Tables("档案编号统计").Current("顺序号登记") = "01|" msg =msg & ";01" End If Else msg = key & ":不符合要求,无法正常编号!" Exit For End If e.ReturnValue = msg End If 客户端 beforesavedatarow 代码如下 Dim dr As DataRow = e.DataRow Dim msg As String = "##" & dr("档案编号") & "##" msg = QQClient.SendWait(msg,5) If msg.StartsWith("OK##") Then dr("档案编号") = dr("档案编号") & "-" & msg.SubString(4).Trim(";") Else e.Cancel = True End If 问题: 测试表共2列:姓名、档案编号,共267行数据 当在一个客户端执行datatables("测试").save 时,保存完用时近60秒。相同的测试数据,当两个客户端同时执行datatables(“测试”).save 时,每个客户端保存完用时都在15秒左右。这个时间差是哪产生的? |
-- 作者:狐狸爸爸 -- 发布时间:2016/9/21 16:12:00 -- 网络编号,建议增加一行就保存一行,在这个表的DataRowAdded事件编写代码:
e.datarow.Save()
至于时间差,同等条件下,按道理一个人应该更快,你是反过来,无法理解,也许是间歇性的网速差异造成的吧。 |