Лучший способ поменять две записи в TDataset Delphi?
Вопрос
Новое в 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.Если вы просто поместите индекс на набор данных, он будет держать вещи заказанными для вас, чтобы вас не нужно переставить их вручную.Просто настройте индекс на основе всех критериев, которые вы хотите использовать.