![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
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;Последний раз редактировалось M.A.D.M.A.N., 20.06.2013 в 07:32. |
|
#2
|
||||
|
||||
|
Вообще, в нормальной базе данных есть такое понятие как референс, у которого можно настраивать каскадное удаление.
Что за база? MySQL/Access? |
|
#3
|
|||
|
|||
|
Это Microsoft SQL Server.
|
|
#4
|
||||
|
||||
|
Там это тоже есть. Только обычно настраивается подобное при создании таблиц, когда нет данных, но можно и на таблицах с данными, только тогда возможно придется почистить некоторые таблицы от записей.
|
|
#5
|
|||
|
|||
|
Правильно я понимаю, что это задаётся во внешнем ключе таблицы через правило обновления и удаления??
|
|
#6
|
|||
|
|||
|
Я попыталась настроить каскадное обновление и удаление для БД. Для всех таблиц получилось, а для той, для которой были написаны процедуры-нет.
Выводит ошибку о появлении множественных циклов, что нужно поставить либо On Delete No Active или On Update No Active Это, кстати, главная таблица. В ней должно содержаться 3 внешних ключа. Последний раз редактировалось Sentyabrina, 20.06.2013 в 14:26. |