Foxtable(狐表)用户栏目专家坐堂 → 请教实现方案


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

主题:请教实现方案

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


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

 方法一:

 

先把DataTables("试验数据")的数据全部加载,这样find起来比较快。

 

方法二:

 

用sqlfind 替换 find


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/14 20:22:00 [只看该作者]

Dim stst As Date = Date.Now '将开始时间保存在变量st中
Dim dt As DataTable = DataTables("试验数据")
For Each dr As DataRow In DataTables("试验临时数据").DataRows
    If dt.SQLFind("编号= '" & dr("编号") & "' and 来源='" & dr("来源") & "' and 数据序='" & dr("数据序") & "'") Is Nothing Then
        dr("存在1") = 1
    End If
Next
MessageBox.Show("耗时: " & (Date.Now - stst).TotalSeconds & "秒") '计算并显示执行代码所花费的秒数

 

这代码 面对4100条测试数据居然耗时270秒,代码耗时如果是这样的 那这段代码几乎是废了。

 

 

 

真是不同的软件有不同的优点,与我之前使用的网络EXCEL平台相比,狐表在灵活性方面的确有相当优势。

但在对后台数据处理速度方面及方便性方面,与网络EXCEL平台相比,差距甚远。

另在数据保存速度方面,以一个有10000条完全相同数据进行测试,狐表与网络EXCEL平台相比也相差很久,

看来 狐表在后台数据处理速度方面还有很大提升空间呀,希望狐表能学习学习别人软件的优点。

 

    看来只能用方法一了,要处理后台数据时,先必须加载相应的后台数据。但有些时候肯定相当麻烦,面对海量后台数据,要不要先加载,加载哪些数据,真是个问题呀?

 


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


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

 回复42楼,SqlFind尽量少用,如果是进行大数据多次查找的话,每执行一次SqlFind,都是需要连接数据库开销的。

 

 所以,尽量是先把所有的值查出来,然后再find。不同的时候用不同的语法。

 

 当然,狐表在语法优化这方面也是有很大的进步空间的。


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


加好友 发短信
等级:三尾狐 帖子:688 积分:4903 威望:0 精华:0 注册:2013/10/27 17:14:00
  发帖心情 Post By:2014/5/14 20:51:00 [只看该作者]

像网络EXCEL平台 提供的 包含 和 非包含 在应对这类操作时那是相当方便和友好。

 

 

提取本报表中满足如下条件的数据:


   筛选条件: 本报表.产品编码 非 包含在( 产品资料_主表.产品编码 ) 
 
并按以下方式新增到主表 <产品资料_主表>:
  本报表.填报  -->(填入值) 填报:
  本报表.日期  -->(填入值) 日期:
  本报表.产品编码  -->(填入值) 产品编码
  。。。。。。


 回到顶部
总数 44 上一页 1 2 3 4 5