以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]后台查找替换的代码求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73516)

--  作者:huangfanzi
--  发布时间:2015/8/20 15:05:00
--  [求助]后台查找替换的代码求助
以下代码只能将已经加载的“产品销售合同”记录进行查找替换,如果这个产品销售合同没有全部加载,代码如何改能进行全表的替换,包括未加载的部分。
For Each dr As DataRow In DataTables("产品销售合同").DataRows
    Dim dr1 As DataRow
    dr1 = DataTables("客户").SQLFind("公司 = \'" & dr("需方") & "\'")
    If dr1 IsNot Nothing Then \'如果找到的话
        dr("简称") = dr1("简称")
    End If
Next


--  作者:大红袍
--  发布时间:2015/8/20 15:31:00
--  
For Each dr As DataRow In DataTables("产品销售合同").Sqlselect("")
    Dim dr1 As DataRow
    dr1 = DataTables("客户").SQLFind("公司 = \'" & dr("需方") & "\'")
    If dr1 IsNot Nothing Then \'如果找到的话
        dr("简称") = dr1("简称")
        dr.save
    End If
Next

--  作者:大红袍
--  发布时间:2015/8/20 15:32:00
--  
sqlFind的效率很低的,还是建议你全部加载客户和合同,用select和find
[此贴子已经被作者于2015/8/20 15:31:41编辑过]

--  作者:Hyphen
--  发布时间:2015/8/20 15:35:00
--  

应该在数据库级别进行替换,然后再加载出来


--  作者:有点蓝
--  发布时间:2015/8/20 15:36:00
--  
这种查询和赋值同时存在的代码效率需要改进