Удаление записи из 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;
Все это в цикле.
По идее, после удаления, курсор должен переместиться на следующую запись. Так в справке прочитал.
Но , во-первых, удаляется не первая запись (на которую я переместился в начале) а последнюю;
во-вторых, он не перемещается на следующую запись.
Что в моем подходе не так?
|