Foxtable(狐表)用户栏目专家坐堂 → [求助] 代码运算太慢


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

主题:[求助] 代码运算太慢

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/14 8:50:00 [显示全部帖子]

直接sql更新,如

dim sql as string = "update a set a.FItemID = (select top 1 FItemID from {t_ICItemCore} Where FNumber = a.PartNo), a.Currency = (Select top 1  FName From {t_Currency} Where FCurrencyID = a.FCyID) from 物料需求 a "
if Tables("物料需求").filter > "" then
sql = sql & " where " & Tables("物料需求").filter
end if

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/14 14:20:00 [显示全部帖子]

物料需求如果是外部表,直接上面的sql即可。

如果是内部表或者临时表,可以考虑把需要查询的数据一次性加载出来使用,比如

cmd1.CommandText = "Se lect FItemID,FNumber From {t_ICItemCore} Where FNumber in ('"& dataTables("物料需求")GetComboListString("PartNo").replace("|","','") & "')"
    Dim dt as datatable= cmd1.ExecuteReader
For Each rrr As Row In Tables("物料需求")
dim dr as datarow = dt.find("FNumber = '"& rrr("PartNo") & "'")
rrr("FItemID") = dr ("FItemID")
……

 回到顶部