代码之家  ›  专栏  ›  技术社区  ›  wfoster

在TDataset Delphi中交换两个记录的最佳方法?

  •  1
  • wfoster  · 技术社区  · 14 年前

    对delphi和数据库编程基本陌生,但我想知道是否有更好的方法来交换TDataset中的记录?我读了一些帮助,找不到任何明显的方法。目前,我实现了一个过程,将记录向下移动到数据集,直到它们到达Eof标记。然而,当我得到数据中的最后一条记录时,我得到了一些奇怪的错误。我所做的只是实现了一个标准的数组样式的交换例程,试图在处理活动记录时保留数据等等。

    目前为止的代码

    procedure TForm2.btnDownClick(Sender: TObject);
    var
       sTmp,sTmp2  : string;
       iTmp,iTmp2  : integer;
    begin
       tblMatched.DisableControls;
       if ( tblMatched.Eof <> true ) then
       begin
          // Grab data to swap
          tblMatched.GotoBookmark( tblMatched.GetBookmark );
          iTmp := tblMatched.Fields[0].AsInteger;
          sTmp := tblMatched.Fields[1].AsString;
          tblMatched.Next;
          iTmp2 := tblMatched.Fields[0].AsInteger;
          sTmp2 := tblMatched.Fields[1].AsString;
    
          // Swap data
          tblMatched.Prior;
          tblMatched.Edit;
          tblMatched.Fields[0].Value := iTmp2;
          tblMatched.Fields[1].Value := sTmp2;
    
          tblMatched.Next;
          tblMatched.Edit;
          tblMatched.Fields[0].AsInteger := iTmp;
          tblMatched.Fields[1].AsString := sTmp;
       end;
       tblMatched.EnableControls;
    end;
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Mason Wheeler    14 年前