以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码执行速度慢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=49429)

--  作者:kmzb56
--  发布时间:2014/4/17 17:47:00
--  代码执行速度慢
 表A与表B关每联,B有做在窗口上的副表上,用

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    Return \'则返回
    End If
Dim wz As Integer
Dim dr As DataRow
dr = DataTables("业务登记").Find("[序号2] = \'" & e.Table.Current("序号") & "\'")
If dr IsNot Nothing Then
    wz = Tables("任务查询_table1").FindRow(dr)
    If wz >= 0 Then
        Tables("任务查询_table1").Position = wz
    End If
End If

执行时,效果有时很慢,可否有改善办法,有时要一个一个逐步查,要等好久,有时又一下查到了,不知什么原因?有其它办法没?

--  作者:Bin
--  发布时间:2014/4/17 17:48:00
--  
数据量大的话,这个速度没办法提升.

只能够考虑换一个方式来做.  你说一下你的具体业务需求,也许有更好的方式.

--  作者:有点甜
--  发布时间:2014/4/17 17:52:00
--  

试试这样,不行的话,就没办法了。可能是数据量大的原因

 

If e.Table.Current Is Nothing Then \'如果Current为Nothing  
    Return \'则返回
End If
Dim wz As Integer
wz = Tables("业务登记").FindRow("[序号2] = \'" & e.Table.Current("序号") & "\'", 0, False)
If wz >= 0 Then
    Tables("任务查询_table1").Position = wz
End If


--  作者:lsy
--  发布时间:2014/4/17 17:58:00
--  
Find执行速度比较慢,数据量稍大,就体现出来了。
--  作者:jianjingmaoyi
--  发布时间:2014/4/17 18:03:00
--  
做个副本表 筛选下 不要定位试试
--  作者:kmzb56
--  发布时间:2014/4/17 23:02:00
--  
不行,试了。