Foxtable(狐表)用户栏目专家坐堂 → 保存时间比较长


  共有5328人关注过本帖树形打印复制链接

主题:保存时间比较长

美女呀,离线,留言给我吧!
nuoyan89
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
保存时间比较长  发帖心情 Post By:2022/12/22 13:29:00 [显示全部帖子]

老师,以下用来更新后台数据时因《出入库明细》表中明细比较多(目前60万条)每次点击保存时好慢,要等3分钟的样子,有什么方法可以优化吗?
For Each dr4 As Row In Tables("出入库明细").Rows
    For Each dr As DataRow In dt1.dataRows
        Dim drs As List(Of DataRow) = DataTables("出入库明细").sqlSelect("成品编码 = '" & dr("成品编码") & "' and 采购订单号 = '" & dr("采购订单号") & "' and 单据类型 = '入库'")
        For Each dr2 As DataRow In drs
            dr2("出库数量") = dr("出库数量")
        Next
        DataTables("出入库明细").SQLUpdate(drs)
    Next
Next
DataTables("出入库明细").loadfilter = ""
DataTables("出入库明细").load
DataTables("出入库明细").Save()
[此贴子已经被作者于2022/12/22 13:29:49编辑过]

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/12/22 13:53:00 [显示全部帖子]

老师,这个是全代码。

DataTables("零件库领料单_出库").Save()
DataTables("零件库领料单_出库").RemoveFor("")
Dim b As New SQLGroupTableBuilder("统计表1", "出入库明细")
b.C
b.Groups.AddDef("成品编码") '根据产品分组
b.Groups.AddDef("采购订单号") '根据产品分组
b.Totals.AddDef("出库数量") '对数量进行统计
b.Filter = "[单据类型] = '出库'"
Dim dt1 As DataTable = b.Build(True)
For Each dr4 As Row In Tables("出入库明细").Rows
    For Each dr As DataRow In dt1.dataRows
        Dim drs As List(Of DataRow) = DataTables("出入库明细").sqlSelect("成品编码 = '" & dr("成品编码") & "' and 采购订单号 = '" & dr("采购订单号") & "' and 单据类型 = '入库'")
        For Each dr2 As DataRow In drs
            dr2("出库数量") = dr("出库数量")
        Next
        DataTables("出入库明细").SQLUpdate(drs)
    Next
Next
DataTables("出入库明细").loadfilter = ""
DataTables("出入库明细").load
DataTables("出入库明细").Save()

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:503 积分:3495 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/12/22 14:03:00 [显示全部帖子]

遍历4是不需要的,我改过了。
DataTables("零件库领料单_出库").Save()
DataTables("零件库领料单_出库").RemoveFor("")
Dim b As New SQLGroupTableBuilder("统计表1", "出入库明细")
b.C
b.Groups.AddDef("成品编码") '根据产品分组
b.Groups.AddDef("采购订单号") '根据产品分组
b.Totals.AddDef("出库数量") '对数量进行统计
b.Filter = "[单据类型] = '出库'"
Dim dt1 As DataTable = b.Build(True)
    For Each dr As DataRow In dt1.dataRows
        Dim drs As List(Of DataRow) = DataTables("出入库明细").sqlSelect("成品编码 = '" & dr("成品编码") & "' and 采购订单号 = '" & dr("采购订单号") & "' and 单据类型 = '入库'")
        For Each dr2 As DataRow In drs
            dr2("出库数量") = dr("出库数量")
        Next
        DataTables("出入库明细").SQLUpdate(drs)
    Next
DataTables("出入库明细").loadfilter = ""
DataTables("出入库明细").load
DataTables("出入库明细").Save()


 回到顶部