|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.04.2015, 13:00 | #1 |
Новичок
Джуниор
Регистрация: 03.04.2015
Сообщений: 4
|
Удаление строки из Dataset
С Вашего позволения перепощу свой вопрос , заданный на другом ресурсе на этот форум.
Delphi 7. Добрый день. Если кого-то не затруднит. Сам я не программист ни разу, но приходится иногда решать те или иные задачи в своей работе, вот и приходится корявыми пальцами что-то делать. На форме есть dbgrid в котором отражены результаты SQL запроса. Запрос через TApolloQuerry. Результатом запроса является набор записей, содержащих три поля. Одно из полей memo. Из набора записей нужно программно удалить те, memo поле ('FIELD_DATA') которых не содержит эталонной строки. Алгоритм, собственно такой: Dbgrid.Datasource.Dataset.First (установил курсор на первую запись) создаю переменную m:Tmemo считываю в m значение memo поля из Dataset: m.Lines.Text:= Form1.DBGrid2.DataSource.DataSet.Fi eldValues['FIELD_DATA'] проверяю содержимое по строкам. Если эталонная строка в m есть, то Form1.DBGrid2.DataSource.DataSet.Ne xt; Если эталонная строка в строках m отсутствует, то удаляю запись. Form1.DBGrid2.DataSource.DataSet.De lete; Все это в цикле. По идее, если первая строка не содержит эталона и подлежит удалению, то она должна быть удалена и после удаления, курсор должен переместиться на следующую запись. Так в справке прочитал. Но , во-первых, удаляется не первая запись (на которую я переместился в начале) а последняя (совершенно не понимаю почему); во-вторых, он не перемещается на следующую запись. Что в моем подходе не так? |
03.04.2015, 13:17 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Запрос через Query? Т.е. SQL?
Тогда Код:
I'm learning to live...
|
03.04.2015, 13:30 | #3 | |
Новичок
Джуниор
Регистрация: 03.04.2015
Сообщений: 4
|
Цитата:
Это удалит записи из исходной таблицы? |
|
03.04.2015, 13:50 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Да. Должен удалить.
может быть я конечно в условии малось ошибся. но сам смысл - использовать SQL для удаления.
I'm learning to live...
|
03.04.2015, 14:22 | #5 | |
Новичок
Джуниор
Регистрация: 03.04.2015
Сообщений: 4
|
Цитата:
SQL запрос к трем таблицам. Пробовал использовать like в селективном запросе, для того чтобы на этом этапе сразу отсечь ненужные записи. Не получилось. Теперь хочу эти ненужные записи просто удалить в полученном Dataset. |
|
03.04.2015, 14:31 | #6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Да, если удаление не подтвердить то данные никуда не исчезнут, но в транзакции они то помечаются на удаление. И даже если нет то нет гарантий что удаление из датасета не отразится по велению провайдера на самой базе. Например в ODBC иногда ставят auto commit после каждого действия с набором, что автоматически отражается в БД физически. Поэтому эта идея далеко не безопасная.
I'm learning to live...
|
||
03.04.2015, 15:05 | #7 |
Новичок
Джуниор
Регистрация: 03.04.2015
Сообщений: 4
|
|
03.04.2015, 15:10 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
За что? )
Я ниче не сделал...
I'm learning to live...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление строки | Alexandr- | Помощь студентам | 5 | 15.11.2013 13:00 |
Строку из одного DataSet в другой DataSet | Abbath1349 | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 0 | 22.05.2011 19:26 |
Добавление строки в существующий DataSet | Kveldulv | Общие вопросы .NET | 2 | 20.01.2011 10:11 |
Из DataSet работающего по циклу в DataSet | maroder22 | БД в Delphi | 1 | 05.09.2010 23:22 |
Удаление элементов строки s2 из строки s1 | Ueshua | Общие вопросы C/C++ | 4 | 20.12.2009 13:06 |