C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Удалить запись
full_lamer
Отправлено: 13.05.2004, 16:57


Машинист паровоза

Группа: Участник
Сообщений: 225



Доброго времени!
Не подскажить как можно удалить запись из DataSet, Query не удаляя ее из БД? или скрыть?
Nick
Отправлено: 13.05.2004, 17:58


Машинист паровоза

Группа: Участник
Сообщений: 247



Если удалять до подтверждения,
то можно:
1. CahedUpdate = true
после всех операций если все операции подтверждаются то ApplyUpdates.
2. Если IBX то запись удалиться только после Commit транзакции.
3. Можно сделать поле Deleted в таблице и для пользователя показивать толь не удаленные строки.
4. Можно сделать триггер BeforePost и записывать записи после удаления в таблицу типа корзина в Виндузе с возмжностью востановления.
и т.д.
full_lamer
Отправлено: 13.05.2004, 22:06


Машинист паровоза

Группа: Участник
Сообщений: 225



Спасибо за ответы, но это не совсем то, нужно вот что, например юзер сочинил запрос и получив данные некоторые ему не понравились, и он просто их удаляет, но не из таблицы, просто с формы(грида) и потом к тому что осталось, можно что-то еще добавить, а после этот образовавшийся список расчепятать или сохранить...
Gedeon
Отправлено: 14.05.2004, 09:02


Ветеран

Группа: Модератор
Сообщений: 1742



В такой ситуации посоветовал бы после получения запроса переносить данные в какой-нить обычный грид и уже в нем делать че хочешь.
full_lamer
Отправлено: 14.05.2004, 09:04


Машинист паровоза

Группа: Участник
Сообщений: 225



Я тоже так подумал, но это такой геморой...
Admin
Отправлено: 14.05.2004, 10:54


Владимир

Группа: Администратор
Сообщений: 1190



Воспользуйтесь таблицей в памяти (RxMemoryData, kbmMemTable)
Пусть User понравившиеся данные переносит в нее.
full_lamer
Отправлено: 14.05.2004, 11:22


Машинист паровоза

Группа: Участник
Сообщений: 225



Я конечно извиняюсь за глупый вопрос, но где эти компоненты находятся RxMemoryData, kbmMemTable?
Valdemar
Отправлено: 14.05.2004, 15:47


Мастер участка

Группа: Участник
Сообщений: 433



RxMemoryData входит в состав библиотеки RxLib. Скачать можно на этом сайте в разделе Downloads.
Guest
Отправлено: 15.05.2004, 11:59


Не зарегистрирован







А мне кажется, что для описанной ситуации хорошо подходит либо свойство Filter либо событие OnFilter DataSet'а.
full_lamer
Отправлено: 15.05.2004, 18:57


Машинист паровоза

Группа: Участник
Сообщений: 225



Уважаемый гость, представьте себе юзера, который захочет добавить к тому что нашла система еще 100 записей и удалить еще 200, это ж как офигенный получится фильтр....biggrin.gif
Guest
Отправлено: 16.05.2004, 16:38


Не зарегистрирован







Согласен. Сам очень не люблю применять фильтры из за медленного вывода. Хотя они сделанны именного для этого и используя некоторые хитрости можно поднять скорость их работы. В вашей постановке задачи когда вы оперируете сотнями удаленных записей (а откуда взяльсь новые, о них речи в вопросе не было) наверное создание промежуточной таблицы будет разумным вариантом. Хотя надо учесть потери времени на физическое удаление из промежуточной таблицы.

Вернуться в Работа с базами данных в C++Builder