Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2017, 21:46   #11
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ещё раз:

вариант, когда нет каскадного удаления
Код:
ALTER PROCEDURE [dbo].[StudentDelete]
@id_s int
AS
Delete from students WHERE id_s=@id_s
Delete from Payment WHERE id_s=@id_s
Delete from Incident WHERE id_s=@id_s
вариант, когда есть каскад (то есть Ваша исходная процедура):
Код:
ALTER PROCEDURE [dbo].[StudentDelete]
@id_s int
AS
Delete from students WHERE id_s=@id_s
Кроме того, лучше покажите скрипты таблиц, а не их схему.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 25.05.2017 в 21:49.
Sciv вне форума Ответить с цитированием
Старый 25.05.2017, 22:14   #12
Alexsandr
Пользователь
 
Аватар для Alexsandr
 
Регистрация: 30.09.2007
Сообщений: 70
По умолчанию

Скрипт таблиц
CREATE TABLE [dbo].[students](
[id_s] [int] IDENTITY(1,1) NOT NULL,
[id_k] [int] NOT NULL,
[id_g] [int] NOT NULL,
[id_r] [int] NOT NULL,
[nomer_zachotki_s] [int] NOT NULL,
[name1_s] [varchar](50) NOT NULL,
[name2_s] [varchar](50) NOT NULL,
[name3_s] [varchar](50) NOT NULL,
[phone_s] [varchar](50) NULL,
[date_start_s] [date] NOT NULL,
[date_finish_s] [date] NOT NULL,
CONSTRAINT [PK_students] PRIMARY KEY CLUSTERED
(
[id_s] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

CREATE TABLE [dbo].[payment](
[id_p] [int] NOT NULL,
[id_s] [int] NOT NULL,
[price_p] [money] NOT NULL,
[date_p] [date] NOT NULL,
[sum_p] [money] NOT NULL,
CONSTRAINT [PK_payment] PRIMARY KEY CLUSTERED
(
[id_p] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

CREATE TABLE [dbo].[incident](
[id_i] [int] IDENTITY(1,1) NOT NULL,
[id_s] [int] NOT NULL,
[date_i] [datetime] NOT NULL,
[description_i] [varchar](255) NOT NULL,
CONSTRAINT [PK_incident] PRIMARY KEY CLUSTERED
(
[id_i] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO


ALTER TABLE [dbo].[incident] WITH CHECK ADD CONSTRAINT [FK_incident_students] FOREIGN KEY([id_s])
REFERENCES [dbo].[students] ([id_s])
ON UPDATE CASCADE
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[incident] CHECK CONSTRAINT [FK_incident_students]
GO

ALTER TABLE [dbo].[payment] WITH CHECK ADD CONSTRAINT [FK_payment_students1] FOREIGN KEY([id_s])
REFERENCES [dbo].[students] ([id_s])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
Вложения
Тип файла: rar скрипт всех таблиц.rar (1.4 Кб, 3 просмотров)
Тип файла: rar исходник_delphi2010l.rar (724.5 Кб, 3 просмотров)
Тип файла: rar бд.rar (168.1 Кб, 3 просмотров)

Последний раз редактировалось Alexsandr; 25.05.2017 в 23:25.
Alexsandr вне форума Ответить с цитированием
Старый 26.05.2017, 21:17   #13
Alexsandr
Пользователь
 
Аватар для Alexsandr
 
Регистрация: 30.09.2007
Сообщений: 70
По умолчанию

Всё всем спасибо! Тема закрыта! Причина всему невнимательность! Забыл
прописать ConnectForm.ADOConnection1.CommitTr ans;

procedure TMainForm.Button9Click(Sender: TObject);
var iDel : integer;
begin
begin
if MessageDlg('Вы уверены, что хотите удалить студента и связанные с ним данные?', mtConfirmation, [mbYes,mbNo],0)=mrYes

then




try
ConnectForm.ADOConnection1.BeginTra ns;
DM1.StudentsDataSet.Edit;
DM1.SPStudentDelete.Parameters.Para mByName('@id_s').Value := DM1.StudentsDataSetid_s.Value;
DM1.SPStudentDelete.ExecProc;

ConnectForm.ADOConnection1.CommitTr ans;

except
ShowMessage('Удаление не получилось');
// Откатываем транзакцию
ConnectForm.ADOConnection1.Rollback Trans;
exit;
end;


DM1.StudentsDataSet.Active:=false;
DM1.StudentsDataSet.Active:=true;
end;
Alexsandr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить данные из связаных таблиц при помоши IN ? ADSoft SQL, базы данных 4 31.10.2013 09:13
Хранимая процедура mavlon_m SQL, базы данных 7 07.09.2013 15:15
Хранимая процедура для двух таблиц iloer БД в Delphi 0 26.05.2010 11:15
запрос вставки связаных таблиц Domanoff БД в Delphi 0 20.04.2010 17:55
Удаление в связаных таблицах ADO Alexsandr БД в Delphi 7 18.02.2008 23:15