SQL数据库,有一张”末端投料计算任务表“,专门用于记录需要服务端计算的记录,当用户在客户端的记录上在审核列打勾后,会自动将一些数据写到“末端投料计算任务表“
代码如下:
Dim dr2 As DataRow = _dt末端投料计算任务表.AddNew
dr2("母捆包号") = e.DataRow("母捆包号")
dr2("来源表名") = e.DataTable.Name
dr2("来源行号") = e.DataRow("_Identify")
dr2("来源类型") = "审核"
dr2("记录标记2") = e.DataRow("记录标记2")
dr2.Save
在服务器端的项目中,有个计划任务,每隔5秒读取数据库中的“末端投料计算任务表“,然后开始计算一些数据,计算完成后将已经计算过的数据删除
MyTimers("末端投料计算").Enabled = False ‘开始一轮计算时就暂停此计划,防止同时执行多个计划
Dim drs任务 As List(Of DataRow) = _dt末端投料计算任务表.SQLSelect("[母捆包号] <> '' ") '读取任务表中记录并且写入drs任务集合
Dim tp As TimeSpan '定义作业分钟分摊
Dim Mkbh As New List(Of String) '定义母捆包号的集合Mkbh
For Each dr As DataRow In drs任务
If Mkbh.Contains(dr("母捆包号"))= False Then '将不同的母捆包号写入Mkbh集合
Mkbh.Add(dr("母捆包号"))
End If
Next
此处为计算及保存计算结果的代码。。。
For Each nm As String In Mkbh
_dt末端投料计算任务表.SQLDeleteFor("母捆包号 = '" & nm & "'")
Next
_dt末端投料计算任务表.Save
MyTimers("末端投料计算").Enabled = True ’重新执行计划
在项目开发调试过程中,由于数据量小,一切正常,今天开始正式使用了,一下子在客户端审核了近2000条数据,发现服务端给出的计算结果就有错误了,请问老师,在服务端执行SQLSelect语句时,会不会因为任务表还在不 断的添加记录导致读取数据出现异常情况?如果是,应该如何优化下代码防止
谢谢老师!
[此贴子已经被作者于2018/4/25 21:15:52编辑过]