Показать сообщение отдельно
  #1  
Старый 03.04.2015, 11:30
graers graers вне форума
Прохожий
 
Регистрация: 03.04.2015
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Удаление записи из dataset

Добрый день.
Если кого-то не затруднит.
Сам я не программист ни разу, но приходится иногда решать те или иные задачи в своей работе, вот и приходится корявыми пальцами что-то делать.
На форме есть dbgrid в котором отражены результаты SQL запроса.
Запрос через TApolloQuerry.
Результатом запроса является набор записей, содержащих три поля. Одно из полей memo.
Из набора записей нужно программно удалить те, memo поле ('FIELD_DATA') которых не содержит эталонной строки.
Алгоритм, собственно такой:
Dbgrid.Datasource.Dataset.First (установил курсор на первую запись)
создаю переменную m:Tmemo
считываю в m значение memo поля из Dataset: m.Lines.Text:= Form1.DBGrid2.DataSource.DataSet.FieldValues['FIELD_DATA']
проверяю содержимое по строкам.
Если эталонная строка в m есть, то Form1.DBGrid2.DataSource.DataSet.Next;

Если эталонная строка в строках m отсутствует, то удаляю запись.
Form1.DBGrid2.DataSource.DataSet.Delete;

Все это в цикле.
По идее, после удаления, курсор должен переместиться на следующую запись. Так в справке прочитал.
Но , во-первых, удаляется не первая запись (на которую я переместился в начале) а последнюю;
во-вторых, он не перемещается на следующую запись.

Что в моем подходе не так?
Ответить с цитированием