以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求用sql语句来优化!  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=61024)

--  作者:heying325
--  发布时间:2014/12/5 14:11:00
--  求用sql语句来优化!
写了下面一段代码:
dim tb as table = tables("表1“)
For Each ro As Row In tb.Rows
   Dim dr As DataRow = DataTables("表2").SQLFind("条件……\'")
   If dr IsNot Nothing Then
      Dim s As String = dr("公式")
      Dim d As Double
      If Double.TryParse(s,d) Then
         ro("结果") = d
      Else
         s = s.Replace("@", "").Replace("x", 100)
         ro("结果") = Eval(s)
      End If
   End If
Next
tb.DataTable.Save
这段代码虽然可以实现我的要求,可是速度太慢,求用sql的方法批量更新,假设数据源为 con !

--  作者:Bin
--  发布时间:2014/12/5 14:16:00
--  
你还用到Eval 必须得代码运行了. 大量数据执行肯定会慢

考虑换个方式不要一下子全部更新

--  作者:heying325
--  发布时间:2014/12/5 14:21:00
--  
请问sql server 有类似 Eval 这样的处理方式么?
--  作者:Bin
--  发布时间:2014/12/5 14:27:00
--  
没有.
--  作者:有点甜
--  发布时间:2014/12/5 14:41:00
--  
以下是引用heying325在2014-12-5 14:21:00的发言:
请问sql server 有类似 Eval 这样的处理方式么?

 

没有,必须先取出公式,再计算方可。


--  作者:有点甜
--  发布时间:2014/12/5 14:42:00
--  

 速度慢的原因是你多次用到了sqlFind,正常的,应该把表数据一次性加载出来,然后用find函数才对的