以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 状态更新 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108211) |
||||||||||||||||||||||||||||
-- 作者:huhuyq -- 发布时间:2017/10/18 15:02:00 -- 状态更新 请问什么方法效率更高一点来更新版本状态,数据有几万行,遍历一遍需要很长时间
For Each u As String In DataTables("ISO_Index").SQLGetValues("Document_No") If DataTables("ISO_Index").SQLCompute("Count([_Identify])","Document_No = \'" & u & "\'") > 1 Then Dim md As Date = DataTables("ISO_Index").SQLCompute("Max(RecieveDate)","Document_No = \'" & u & "\'") Dim dss As List(Of DataRow) dss = DataTables("ISO_Index").SQLSelect("[Document_No] = \'" & u & "\'") For i As Integer = 0 To dss.Count-1 If dss(i)("RecieveDate") < md Then dss(i)("REV_Status") = "Updated" Else dss(i)("REV_Status") = "New" End If Next End If Next |
||||||||||||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2017/10/18 15:40:00 -- 方法一:
DataTables("ISO_Index").loadfilter = "" |
||||||||||||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2017/10/18 15:44:00 -- 方法二:
可以先生成分组统计表,得到每个 No 对应的最大值,然后用 SQLReplaceFor 直接更新 http://www.foxtable.com/webhelp/scr/2898.htm
|
||||||||||||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2017/10/18 15:44:00 -- 方法三:上传具体实例测试。 |
||||||||||||||||||||||||||||
-- 作者:huhuyq -- 发布时间:2017/10/18 16:25:00 --
|
||||||||||||||||||||||||||||
-- 作者:有点甜 -- 发布时间:2017/10/18 20:12:00 -- 2楼,或者下面代码
Dim pdr As DataRow = Nothing |
||||||||||||||||||||||||||||
-- 作者:huhuyq -- 发布时间:2017/10/19 16:13:00 -- 谢谢,老师了
|