|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.05.2009, 12:23 | #1 |
Пользователь
Регистрация: 26.11.2008
Сообщений: 81
|
Каскадное удаление записей
Есть 2 таблицы. Нужно при удалении записи в главной таблице удалить записи во второй таблице. При этом, если пользователь передумал, то отменить удаление записей. Написала вот такую процедуру:
procedure TDM.TIFBeforeDelete(DataSet: TDataSet); begin if DM.TMed.Locate('KOD_IF',DM.TIFKOD_I F.Value,[]) then begin if Messagedlg('Найдены связанные записи!'+#13+'Все равно хотите удалить?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin DM.TMed.Filtered:=True; DM.TMed.Filter:='KOD_IF='+chr(39)+D M.TIFKOD_IF.AsString+chr(39); kol:=DM.TMed.RecordCount; DM.TMed.First; for i:=1 to kol do begin DM.TMed.Edit; DM.TMed.Delete; DM.TMed.Post; end; DM.TMed.Filtered:=False; end else begin DM.TIF.RevertRecord; end; end; end; В принципе работает, но как то коряво. Если пользователь передумал удалять, запись остается в таблице, но в DBGrid не отображается. Чего не хватает? |
13.05.2009, 12:38 | #2 |
Форумчанин
Регистрация: 29.01.2009
Сообщений: 411
|
Попробуйте так
Код:
|
13.05.2009, 12:44 | #3 |
Пользователь
Регистрация: 26.11.2008
Сообщений: 81
|
Пробовала, не помогает. Ееще пробовала ACTIVE изменять. Таблица в нормальном состоянии отображается только после перезапуска программы.
|
13.05.2009, 14:17 | #4 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
попробуйте после удаления записи, обновлять все остальные записи. Table1.Refresh. Как то так кажется. Была у меня подобная бяка)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
13.05.2009, 15:01 | #5 |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
Попробуйте так:
Код:
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. |
14.05.2009, 07:26 | #6 |
Пользователь
Регистрация: 26.11.2008
Сообщений: 81
|
|
14.05.2009, 07:32 | #7 |
Пользователь
Регистрация: 26.11.2008
Сообщений: 81
|
|
14.05.2009, 08:04 | #8 |
Форумчанин
Регистрация: 14.01.2009
Сообщений: 312
|
Транзакции и запросы решили бы этот вопрос гораздо красивей и проще,да и ошибок было бы меньше
Никому не поставить нас на колени! Мы лежали и будем лежать!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Каскадное удаление и модификация таблиц | Абдуллаев Рустам | БД в Delphi | 6 | 01.05.2009 20:47 |
каскадное удаление | Skolot | Microsoft Office Access | 0 | 20.04.2009 11:12 |
Удаление записей | Blackmore | БД в Delphi | 2 | 26.05.2008 08:18 |
Каскадное удаление | BustA | SQL, базы данных | 1 | 16.01.2008 10:31 |
Удаление записей | Arsgun | БД в Delphi | 7 | 09.07.2007 11:56 |