Foxtable(狐表)用户栏目专家坐堂 → 下面这段代码处理少的数据还比较快,数据量多了就卡死,可以怎么改善


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

主题:下面这段代码处理少的数据还比较快,数据量多了就卡死,可以怎么改善

帅哥哟,离线,有人找我吗?
yetle
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2019/5/31 8:49:00 [只看该作者]

一个表2000行,一个表60行,测试卡死
是两个表乘积,能不能一次生成2000行,分60次生成,代码可以怎么改?
[此贴子已经被作者于2019/5/31 8:51:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 9:26:00 [只看该作者]

以下是引用yetle在2019/5/31 8:49:00的发言:
一个表2000行,一个表60行,测试卡死
是两个表乘积,能不能一次生成2000行,分60次生成,代码可以怎么改?
[此贴子已经被作者于2019/5/31 8:51:48编辑过]

 

增加10万行不至于假死,假死应该是最后save的时候导致的,你把save代码删除后测试,看速度能否接受。

 

最后保存,改成这种方式保存 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&replyID=680089&skin=1

 

http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52855&skin=0

 


 回到顶部
帅哥哟,离线,有人找我吗?
yetle
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2019/5/31 10:43:00 [只看该作者]

老师,您的这个案例,我没看懂,您帮我看看我这段代码保存要怎么改?
Tables("分派工序_table8").save()
For Each dr As Row In Tables("分派工序_table8").rows
    For Each br As Row In Tables("分派工序_table5").rows
Dim hpr = DataTables("派发工序表").Find("[订单号] = '" & br("订单号")  & "' and [制单号] = '" & br("制单号")  & "'and [箱号] = '" & br("箱号")  & "' and [工序号] = '" & dr("工序号")  & "'")
    If hpr IsNot Nothing Then
       If dr("生产员工") <> hpr("生产员工") Or dr("生产员工工号") <> hpr("生产员工工号")  Then
        hpr("生产员工") = dr("生产员工")
        hpr("生产员工工号") = dr("生产员工工号")
       End If
       If dr("生产员工1") <> hpr("生产员工1") Or dr("生产员工1工号") <> hpr("生产员工1工号")  Then
        hpr("生产员工1") = dr("生产员工1")
        hpr("生产员工1工号") = dr("生产员工1工号")
       End If
       If dr("生产员工2") <> hpr("生产员工2") Or dr("生产员工2工号") <> hpr("生产员工2工号")  Then
        hpr("生产员工2") = dr("生产员工2")
        hpr("生产员工2工号") = dr("生产员工2工号")
       End If
       If dr("生产员工3") <> hpr("生产员工3") Or dr("生产员工3工号") <> hpr("生产员工3工号")  Then
        hpr("生产员工3") = dr("生产员工3")
        hpr("生产员工3工号") = dr("生产员工3工号")
       End If
       If dr("生产员工4") <> hpr("生产员工4") Or dr("生产员工4工号") <> hpr("生产员工4工号")  Then
        hpr("生产员工4") = dr("生产员工4")
        hpr("生产员工4工号") = dr("生产员工4工号")
       End If
       If dr("生产员工5") <> hpr("生产员工5") Or dr("生产员工5工号") <> hpr("生产员工5工号")  Then
        hpr("生产员工5") = dr("生产员工5")
        hpr("生产员工5工号") = dr("生产员工5工号")
       End If
       If dr("工序号") <> hpr("工序号") Then
        hpr("工序号")  = dr("工序号") 
       End If
       If dr("工序名") <> hpr("工序名") Then
        hpr("工序名")  = dr("工序名") 
       End If
       If dr("车种") <> hpr("车种") Then
        hpr("车种")  = dr("车种")
       End If
       If dr("部门") <> hpr("部门") Then
        hpr("部门")  = dr("部门") 
       End If
       If dr("工价") <> hpr("工价") Then
        hpr("工价")  = dr("工价")
       End If
       If dr("基本工价") <> hpr("基本工价") Then
        hpr("基本工价")  = dr("基本工价")
       End If
       If dr("工价系数") <> hpr("工价系数") Then
        hpr("工价系数")  = dr("工价系数")
       End If
       If dr("标准工时") <> hpr("标准工时") Then
        hpr("标准工时")  = dr("标准工时")
       End If

Else
        Dim pr As DataRow = DataTables("派发工序表").addnew
        pr("订单号") = br("订单号")
        pr("制单号") = br("制单号")
        pr("客款号") = br("客款号")
        pr("货品名") = br("货品名")
        pr("物供号") = br("物供号")
        pr("部门") = br("部门")
        pr("组别") = br("班组")
        pr("款号") = br("款号")
        pr("颜色") = br("颜色")
        pr("尺码") = br("尺码")
        pr("件数") = br("件数")
        pr("箱号") = br("箱号")
        pr("工段") = br("工段")
        pr("鼎邦制单数ID") = br("鼎邦制单数ID")
        pr("工序号") = dr("工序号")
        pr("工序名") = dr("工序名")
        pr("标准工时") = dr("标准工时")
        pr("车种") = dr("车种")
        pr("部门") = dr("部门")
        pr("工价") = dr("工价")
        pr("基本工价") = dr("基本工价")
        pr("工价系数") = dr("工价系数")
        pr("生产员工") = dr("生产员工")
        pr("生产员工1") = dr("生产员工1")
        pr("生产员工2") = dr("生产员工2")
        pr("生产员工3") = dr("生产员工3")
        pr("生产员工4") = dr("生产员工4")
        pr("生产员工5") = dr("生产员工5")
        pr("生产员工工号") = dr("生产员工工号")
        pr("生产员工1工号") = dr("生产员工1工号")
        pr("生产员工2工号") = dr("生产员工2工号")
        pr("生产员工3工号") = dr("生产员工3工号")
        pr("生产员工4工号") = dr("生产员工4工号")
        pr("生产员工5工号") = dr("生产员工5工号")

        pr("条码") = br("订单号") & br("制单号") & br("款号") & br("箱号")
End If
     Next
Next

Tables("派发工序表").save()


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 10:58:00 [只看该作者]

把这些代码删除啊

 

Tables("派发工序表").save()


 回到顶部
帅哥哟,离线,有人找我吗?
yetle
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2019/5/31 11:01:00 [只看该作者]

我想知道删除后怎么改保存条件,我现在已经生产了数据,不好做测试,希望知道怎么改保存方式。时间比较紧

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 11:10:00 [只看该作者]

1、加上stopredraw、ResumeRedraw等

 

加上 http://www.foxtable.com/webhelp/scr/0401.htm

 

加上 http://www.foxtable.com/webhelp/scr/2218.htm

 

2、不要save,先测试执行效率啊


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 11:11:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
yetle
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:858 积分:6381 威望:0 精华:0 注册:2017/2/13 9:04:00
  发帖心情 Post By:2019/5/31 11:15:00 [只看该作者]

没看懂呢,老师直接帮我给一下代码先

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/31 11:17:00 [只看该作者]

以下是引用yetle在2019/5/31 11:15:00的发言:
没看懂呢,老师直接帮我给一下代码先

 

请上传具体foxtable项目实例


 回到顶部
总数 19 上一页 1 2