Форум: "Базы";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];
ВнизОбновление базы и 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 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c