Foxtable(狐表)用户栏目专家坐堂 → 这样分次处理也会出现错误?!


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

主题:这样分次处理也会出现错误?!

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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
这样分次处理也会出现错误?!  发帖心情 Post By:2018/9/7 11:46:00 [只看该作者]

.NET Framework 版本:2.0.50727.8825
Foxtable 版本:2018.8.30.1
错误所在事件:加载[HstDtl]失败!
详细错误信息:
查询超时已过期

有关代码如下:IDDtl表中的数据是HstDtl中ID唯一值的信息,HstDtl中每一个ID的相关记录不会超过100行
For i As Integer = 6272450 To 8974340
    For k As Integer = 1 To 2702       
        Dim m,n As Integer
        m = 6272449 + (k-1) * 1000 + 1
        n = 6272449 + k * 1000
        DataTables("IDDtl").LoadFilter = "[_Identify] >= " & m & " And [_Identify] <= " & n
        DataTables("IDDtl").Load
        For Each dr As Row In Tables("IDDtl").Rows
            Dim id As String = dr("ID")
            output.Show(id)
            DataTables("HstDtl").LoadFilter = "[ID] = '" & id & "'"
            DataTables("HstDtl").Load
            Tables("HstDtl").Sort = "出货日期"
            Dim t As Integer = Tables("HstDtl").Rows.Count
            Dim r As Row = Tables("HstDtl").Rows(n-1)
            r("Lst") = t-1
            DataTables("HstDtl").ReplaceFor("TJ",True)
            DataTables("HstDtl").Save
        Next
    Next
Next
MessageBox.Show("OK")

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


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

为什么要循环执行load?不能直接用sql后台处理?

 

http://www.foxtable.com/webhelp/scr/2724.htm

 

有可能是多次循环多次load的时候,导致出问题。


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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19223 威望:0 精华:2 注册:2008/9/1 7:50:00
  发帖心情 Post By:2018/9/7 12:57:00 [只看该作者]

为什么要这样的?指引到问题的关键
任何有关于SQLCommand、还有DataTable的SQL方法,都会出现同样的错误,因此不得已采用以上的分批分次小量加载。
因为在这之前两三个版本中,我都一次性加载了300万行的数据,都没有问题的啊!
所以,我可能猜想都是不是这个版本有问题?!希望我的设想是错误的!

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


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

查询超时已过期,说明是查找的时候,比较耗时,照成超时。

 

1、你弹出一下对应的条件是什么,执行什么条件的时候查询超时;

 

2、是不是你数据库数据太多,导致索引循坏了,导致现在查询耗时?


 回到顶部