Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 20.06.2013, 05:19
Sentyabrina Sentyabrina вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Необходимо написать процедуру удаления данных из связанных таблиц

http://www.delphisources.ru/forum/at...d=137169090 9
Вот такую ошибку выдаёт. А вот код:
1 процедура из формы, вызывающей форму, где выбираются параметры удаляемой записи:
Код:
procedure TForm13.RadioButton5Click(Sender: TObject);
var i,n:integer;
begin
 if DataModule1.DataSource3.State=dsBrowse then
  DataModule1.ADOTable3.Edit;
 Form23.ShowModal;
begin
   DataModule1.ADOTable1.DisableControls;
    if DataModule1.DataSource3.State=dsBrowse then
    DataModule1.ADOTable3.Edit;
        if DataModule1.DataSource1.State=dsBrowse then
    DataModule1.ADOTable1.Edit;
      DataModule1.ADOTable1.Last;
  DataModule1.ADOTable1.First;
  n:=DataModule1.ADOTable1.RecordCount;
    {Locate(DataModule1.ADOTable3.Fields[0].AsString,Form1.DBComboBox1.Text,[]);}
  For i:=1 to n do begin
  if (DataModule1.ADOTable1.Fields[1].AsString=Form23.DBComboBox1.Text)
    and (not Eof)then DataModule1.ADOTable1.Delete;
    end;
  DataModule1.ADOTable1.EnableControls;
end;
DataModule1.ADOTable3.Delete;
DataModule1.ADOTable3.Post;
end;
2 процедуры выбора этих параметров
procedure TForm14.Button1Click(Sender: TObject);
begin
DataModule1.ADOTable1.Post;
if DataModule1.DataSource1.State=dsBrowse then
DataModule1.ADOTable1.Edit;
end;

procedure TForm14.Button2Click(Sender: TObject);
begin
DataModule1.ADOTable1.Cancel;
if DataModule1.DataSource1.State=dsBrowse then
DataModule1.ADOTable1.Edit;
end;
MAD: Пользуемся тегами!
Изображения
Тип файла: png Безымянный.png (26.7 Кбайт, 5 просмотров)

Последний раз редактировалось M.A.D.M.A.N., 20.06.2013 в 07:32.
Ответить с цитированием
  #2  
Старый 20.06.2013, 07:34
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Вообще, в нормальной базе данных есть такое понятие как референс, у которого можно настраивать каскадное удаление.

Что за база? MySQL/Access?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 20.06.2013, 10:49
Sentyabrina Sentyabrina вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Это Microsoft SQL Server.
Ответить с цитированием
  #4  
Старый 20.06.2013, 11:34
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Там это тоже есть. Только обычно настраивается подобное при создании таблиц, когда нет данных, но можно и на таблицах с данными, только тогда возможно придется почистить некоторые таблицы от записей.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 20.06.2013, 13:53
Sentyabrina Sentyabrina вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Правильно я понимаю, что это задаётся во внешнем ключе таблицы через правило обновления и удаления??
Ответить с цитированием
  #6  
Старый 20.06.2013, 14:23
Sentyabrina Sentyabrina вне форума
Прохожий
 
Регистрация: 20.06.2013
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Я попыталась настроить каскадное обновление и удаление для БД. Для всех таблиц получилось, а для той, для которой были написаны процедуры-нет.
Выводит ошибку о появлении множественных циклов, что нужно поставить либо On Delete No Active или On Update No Active

Это, кстати, главная таблица. В ней должно содержаться 3 внешних ключа.

Последний раз редактировалось Sentyabrina, 20.06.2013 в 14:26.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025