在里面的同时,卡在第一记录

时间:2014-02-14 03:05:39

标签: sql asp-classic while-loop updates

        while not rs.eof
            if request("QTY_NOWRECEIVE"&rs("pd_id")) <> "" then
                rsa.movefirst
                if not rsa.eof then
                    if trim(request("stock_id"&rs("pd_id"))) = trim(rsa("stock_id")) and trim(request("ORDER_NUMBER"&rs("pd_id"))) = trim(rsa("PONumber")) then
                        '''check, same then edit record
                        (...)
                        rsa.update
                    else
                        '''check, not same then add record
                        rsa.addnew
                        (...)
                        rsa.update
                    end if
                rsa.movenext
                end if
            end if
        rs.movenext
        wend
  

现在我有2个sql。表单中的sql1和数据库中的sql2。首先,我按表单1,2和3添加新记录。因此数据库得到记录1,2和3.然后我编辑成1a,2b和3c。但我在数据库中的结果是1a,2,3,1a和1a。我的逻辑完全错了吗?

现在我只想检查我的提交是否与数据库有相同的项目。如果相同则编辑,如果不相同则添加新的。

19-02-2014 1.add rsa.movefirst。 2.如果不是rsa.eof则改变而不是rsa.eof那么

1 个答案:

答案 0 :(得分:0)

我不太关注你的情况,但我认为你需要第二个记录集,rsa每次在rs中有新记录时循环,对吗?

如果是这样,您需要通过添加movefirst

告诉rsa重新开始
    while not rs.eof
          if (...) then
                 rsa.movefirst
                 while not rsa.eof 
                        if (whatever) then
                               ...
                        else
                               ...   
                               rsa.update
                        end if
                        rsa.movenext
                 wend
          end if
          rs.movenext
   wend

如果你不添加MoveFirst,rsa将始终位于最后一条记录中,并且永远不会再次遍历循环。