首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

ADOQuery.Locate 更新解决方法

2013-04-22 
ADOQuery.Locate 更新我有这样的代码:beginDM_SAMPriceCopy.Qy_Detail.Firstwhile not DM_SAMPriceCopy.Q

ADOQuery.Locate 更新
  我有这样的代码:
  begin
    DM_SAMPriceCopy.Qy_Detail.First;
    while not DM_SAMPriceCopy.Qy_Detail.Eof do
    begin
      if DM_SAMPriceCopy.Qy_Detail.Locate('ProcessID',QryDataDetail.FieldByName('ProcessID').AsInteger,[]) then
      begin
        QryDataDetail.Edit;
        QryDataDetail.FieldByName('ActuallyPrice').AsFloat:=DM_SAMPriceCopy.Qy_Detail.FieldByName('ActuallyPrice').AsFloat;
        QryDataDetail.Post;
      end;
      DM_SAMPriceCopy.Qy_Detail.Next;
    end;
  end;
   将DM_SAMPriceCopy.Qy_Detail开启,然后用Locate定位相同的ProcessID,如果存在,则更新QryDataDetail的ActuallyPrice。但是我通过调试发现,它出现了死循环,Next之后,获取的ProcessID都是一样的。
   请问该如何做?
[解决办法]
begin
    DM_SAMPriceCopy.Qy_Detail.First;
    while not DM_SAMPriceCopy.Qy_Detail.Eof do
    begin
      if DM_SAMPriceCopy.Qy_Detail.Locate('ProcessID',QryDataDetail.FieldByName('ProcessID').AsInteger,[]) then
      begin
        QryDataDetail.Edit;
        QryDataDetail.FieldByName('ActuallyPrice').AsFloat:=DM_SAMPriceCopy.Qy_Detail.FieldByName('ActuallyPrice').AsFloat;
        QryDataDetail.Post;
        QryDataDetail.Next;
      end;
      DM_SAMPriceCopy.Qy_Detail.Next;
    end;
  end;

热点排行