Вопрос

Новое в Delphi и программирование базы данных в целом, но мне интересно, если есть лучший способ поменять записи записей в TDataset?Я прочитал некоторую помощь и не могу найти какие-либо очевидные методы.В настоящее время у меня есть процедура, реализованная для перемещения записей вниз по набору данных, пока они не ударяют маркер EOF.Однако я получаю некоторые странные ошибки, когда я добираюсь до последней записи в моих данных.Все, что у меня есть, это реализуется стандартной регулярной подсветкой в стиле массива, пытаясь сохранить данные и athnoT во время жонглирования активных записей.

код до сих пор

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;
.
Это было полезно?

Решение

Похоже, вы используете набор данных в памяти, например tClientDataset.Если вы просто поместите индекс на набор данных, он будет держать вещи заказанными для вас, чтобы вас не нужно переставить их вручную.Просто настройте индекс на основе всех критериев, которые вы хотите использовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top