![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 07.07.2011
Сообщений: 2
|
![]()
Добрый день!!!!!
есть TADODataSet, у него свойство LockType = ltBatchOptimistic У TADODataSet есть свойство UpdateStatus, которое может принимать сл. значения:
если происходит редактирование или добавление записей, то статус принимает соответствующее значение. Но если я удаляю запись, то статус не присваивается, хотя из грида она уходит. Подскажите как узнать что была удалена запись???? |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 07.07.2011
Сообщений: 2
|
![]()
Спасибо, за отклик...
сразу возникает два вопроса:
Хорошо, посоветуйте хоть как сделать!!!! Почему я решил использовать LockType = ltBatchOptimistic, т.к. у меня информация редактируется в DBMEMO, DBTextEdit и в DBGrid. В Гриде выводятся несколько записей вместе с одной записью выведенной в МЕМО и ТекстЕдите, они туда попадают из разных датасетов, связанных по мастер-детеил. Как известно отредактированная информация сохранится в базе только при переходе курсора на следующую запись. Таким образом если нам надо отредактировать только информацию в МЕМО или ТектЕдите она не будет никогда сохранена, т.к. переход к другой записи не предусмотрен. Я и решил сделать кнопку "Сохранить" и по состоянии датасетов давать возможность сохранять данные. Но как выяснилось информация о том что запись была удалена нигде не отражается и опять полностью данные нет возможности сохранять. Отсюда вопрос, поделитесь опытом как решить эту проблему???? Последний раз редактировалось Stilet; 11.07.2011 в 10:54. |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
![]()
У любого DataSet есть событие BeforeDelete, которое случается перед удалением записи. В нем можно узнать какая запись будет удалена.
Для того чтобы держать все под контролем при разработке приложений работающих с БД, не используют непосредственное редактирование информации. Т.е. не применяют компоненты из закладки Data Controls (кроме DBGrid и только для отображения данных). Кнопка "Сохранить" первый шаг на правильной дороге. Цитата:
Первый можно сразу перадресовать разработчикам. На второй, ответ: "никак". На третий нужно спросить в ответ: "а сами то поняли чего спросили?" На четвертый ответ такой: датасет - это лишь посредник между БД и приложением и его данные - это и есть данные в БД (на сервере). Отсюда вывод: "удаление данных в датасете" не что иное как удаление данных в БД. Последний раз редактировалось Прик; 17.07.2011 в 08:03. |
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
В раннее время существовали СУБД не выполняющие физического удаления записей по команде delete, а устанавливающие некий признак удаления И при желании такие записи можно было увидеть и даже ОТМЕНИТЬ удаление по прошествии любого сколь угодно большого времени А точнее до тех пор пока не был явным образом запущен сборщик мусора данной СУБД. Теперь же сбор мусора (удаленные записи) осуществляется автоматически по решению самой СУБД.
программа — запись алгоритма на языке понятном транслятору
|
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сохранение файла после изменения/удаления записи (Delphi) | Kurai | Помощь студентам | 2 | 15.05.2010 23:21 |
Очищение DateTimePicker после удаления записи | Droid | БД в Delphi | 9 | 21.10.2009 15:57 |
[C++] Программа-справочник, Функция удаления записи из файла | umnik90 | Общие вопросы C/C++ | 1 | 11.06.2009 16:07 |
Отмена удаления записи | Хитрец | БД в Delphi | 2 | 12.04.2009 23:14 |
как вытащить значение из sql запроса след.вида | Tanuska___:) | БД в Delphi | 3 | 29.09.2008 15:54 |