以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这样分次处理也会出现错误?! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124492) |
-- 作者:kylin -- 发布时间: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") |
-- 作者:有点甜 -- 发布时间:2018/9/7 12:03:00 -- 为什么要循环执行load?不能直接用sql后台处理?
http://www.foxtable.com/webhelp/scr/2724.htm
有可能是多次循环多次load的时候,导致出问题。 |
-- 作者:kylin -- 发布时间:2018/9/7 12:57:00 -- 为什么要这样的?指引到问题的关键 任何有关于SQLCommand、还有DataTable的SQL方法,都会出现同样的错误,因此不得已采用以上的分批分次小量加载。 因为在这之前两三个版本中,我都一次性加载了300万行的数据,都没有问题的啊! 所以,我可能猜想都是不是这个版本有问题?!希望我的设想是错误的!
|
-- 作者:有点甜 -- 发布时间:2018/9/7 14:43:00 -- 查询超时已过期,说明是查找的时候,比较耗时,照成超时。
1、你弹出一下对应的条件是什么,执行什么条件的时候查询超时;
2、是不是你数据库数据太多,导致索引循坏了,导致现在查询耗时? |