Foxtable(狐表)用户栏目专家坐堂 → [求助]sqlfind查询赋值慢


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

主题:[求助]sqlfind查询赋值慢

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


加好友 发短信
等级:四尾狐 帖子:826 积分:7130 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]sqlfind查询赋值慢  发帖心情 Post By:2022/6/8 16:07:00 [只看该作者]

老师,用以下代码查询“进价(500行)”和“报表(400行)”表最近一次关联行赋值到“产品表(200)”,代码执行慢的很,

For Each dr As DataRow In DataTables("产品").DataRows
    If dr IsNot Nothing Then
        Dim dr1 As DataRow
        dr1 = DataTables("进价").SQLFind("合成名称 = '" & dr("合成名称") & "'", "进货日期 Desc")
        If dr1 IsNot Nothing Then
            dr("最新进价_进货日期") = dr1("进货日期")
            dr("最新进价_进价") = dr1("进价")
        End If
        Dim dr2 As DataRow
        dr2 = DataTables("报价").SQLFind("合成名称 = '" & dr("合成名称") & "'", "报价日期 Desc")
        If dr1 IsNot Nothing Then
            dr("最新报价_报价日期") = dr2("报价日期")
            dr("最新报价_报价") = dr2("报价")
        End If
    End If
Next

麻烦问一下,可否有替代思路或者优化代码?


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110818 积分:564034 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/8 16:13:00 [只看该作者]

方法1、把数据都加载进来,然后使用Find,再看看:http://www.foxtable.com/webhelp/topics/2225.htm
2、使用sql,类似
update 产品 set 最新进价_进货日期 = (select max(进货日期) from 进价 where 合成名称=产品.合成名称
update 产品 set 最新进价_进价 = (select top 1 进价 from 进价 where 合成名称=产品.合成名称 order by 进货日期 Desc

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


加好友 发短信
等级:四尾狐 帖子:826 积分:7130 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/6/8 16:49:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.txt

老师用以上代码,出现如下错误提示,麻烦看一下,

S ELECT语句 确实是我的短处,实在看不明白了。

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.6.7.1
错误所在事件:
详细错误信息:
操作必须使用一个可更新的查询。



 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110818 积分:564034 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/8 16:51:00 [只看该作者]

sql需要提供实例测试

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


加好友 发短信
等级:四尾狐 帖子:826 积分:7130 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/6/8 16:52:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:源码_产品进(报)价查询系统.zip

就是这个项目,麻烦您把SELECT语句改一下,做个样就行了,我实在搞不明白了。

 

[此贴子已经被作者于2022/6/8 16:53:17编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110818 积分:564034 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/8 17:16:00 [只看该作者]

access不支持这种更新的SQL用法,只能加载后处理了

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


加好友 发短信
等级:四尾狐 帖子:826 积分:7130 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/6/8 17:21:00 [只看该作者]

知道了。谢谢!

 


 回到顶部