質問

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;
.
役に立ちましたか?

解決

TcrientDataSetなどのメモリ内データセットを使用しているようです。データセットにインデックスを入力するだけでは、手動でそれらを並べ替える必要はないので、それはあなたのために注文されたことを保つでしょう。使用したい条件に基づいてインデックスを設定するだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top