Вниз
Скачать: CL | DM;

Обновление базы и ADO   Найти похожие ветки 

 
Bogus ©   (2002-07-30 15:26) [0]

Доброго здравия уважаемым мастерам!

Есть две таблицы: первая и вторая.
Вторая связана с первой, т.е. содержит поле, соответствующее первичному ключу первой. Хочу удалить запись из первой.
Для этого пишу:

SQLCommand : tADOCommand;
Query : tADOQuery;

SQLCommand.CommandText := "delete from <вторая> where
<ключ_первой> = " + <то,что нужно> ;
SQLCommand.Execute;
Query.Delete;

Получаю ошибку: Таблица вторая содержит связанные элементы...,
или что-то в этом духе.

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

Заранее спасибо и извините, если сильно повторяюсь.


 
Mike Kouzmine   (2002-07-30 15:34) [1]

не совсем понятно после where


 
Jee ©   (2002-07-30 15:40) [2]

На сколько я понял, ты хочешь удалить из "мастер" таблицы запись и в таблице "деталь" содержится запись со значением вшешнего ключа равному значению первичного ключа первой таблицы. Ясное дело, связь не позволит этого сделать. Сначала надо удалить из второй таблицы все записи, связанные с первой, а потом удалить из первой. Тогда в событии первой таблице BeforeDelete пишешь

SQLCommand.CommandText := "delete from <вторая> where
<внешний_ключ> = " + <Первая>.<первичный ключ>.<значение> ;
SQLCommand.Execute;



 
Bogus ©   (2002-07-30 18:14) [3]

2 Jee
> На сколько я понял, ты хочешь удалить из "мастер" таблицы запись > ...
Верно, именно этого я и хочу. До твоей мысли я дошел, проблема именно в том, что между SQLCommand.Execute и реальным обновлением базы проходит несколько секунд. Т.е. получается, что когда я выполняю delete, таблица "деталь" как-будто еще содержит связанные записи.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.009 c
3-60516
X-jedy
2002-07-29 17:04
2002.08.19
MySql и все, все, все...


1-60557
HitMan
2002-08-07 15:03
2002.08.19
ANSI


1-60684
-=Prior=-
2002-07-30 21:32
2002.08.19
Компонент TRichEdit. Помогите плиз!


4-60890
Burmistroff
2002-06-13 14:24
2002.08.19
У кого ошибка?


1-60635
Invega
2002-08-08 19:38
2002.08.19
Как в MainMenu сделать...




   Наверх