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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2015, 17:02   #11
АнтонКурышов
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да, и на будущее совет: Если работаешь с SQL - про циклы всякие забывай сразу. Это как пятое колесо, пришитое к рукаву зайца.
Хороший совет. я начинаю понимать это.
А вот у меня еще такой вопрос, у меня есть еще одно таблица, и в ней есть поле product ID, они связаны при помощи внешнего ключа и то есть когда я удаляю запись из таблицы product, так же должна удалять запись и из другой таблицы, как это сделать?
АнтонКурышов вне форума Ответить с цитированием
Старый 23.12.2015, 17:21   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Хм... Это нужно настраивать каскадное удаление.
Это от СУБД зависит, умеет она такое или нет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2015, 17:25   #13
АнтонКурышов
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 17
По умолчанию

для создания БД использовал СУБД FireBird
Мне в курсовом это точно надо как то сделать...
АнтонКурышов вне форума Ответить с цитированием
Старый 23.12.2015, 20:05   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Э-э-эм... В огнептичке вроде есть возможность настройки каскада. Когда при удалении одной записи, из подчиненных таблиц удаляются с ней связанные.
Там вроде когда в базе настраиваешь внешние ключи есть опция Cascade... Вот чет типа такого...
Безымянный.jpg
Вот и займись изучением SQL команд создания внешних ключей.
И почитай литературу про эти каскадные операции.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.12.2015, 20:50   #15
АнтонКурышов
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 17
По умолчанию

Спасибо за это) буду сейчас читать)
АнтонКурышов вне форума Ответить с цитированием
Старый 23.12.2015, 22:39   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а если не сможете настроить каскадное удаление, то всегда есть запасной выход - можно ручками вызвать запрос с удалением записей сначала из дочерней таблицы, потом - из родительской.

Хотя, конечно, поручить это СУБД - это и проще и надежнее!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.12.2015, 23:32   #17
АнтонКурышов
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
а если не сможете настроить каскадное удаление, то всегда есть запасной выход - можно ручками вызвать запрос с удалением записей сначала из дочерней таблицы, потом - из родительской.
А какой-нибудь пример показать можете показать или кусочек кода, пожалуйста?!!

Последний раз редактировалось Stilet; 24.12.2015 в 09:31.
АнтонКурышов вне форума Ответить с цитированием
Старый 24.12.2015, 08:24   #18
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
А какой-нибудь пример показать можете показать или кусочек кода,
да легко.
Перед удалением из основной таблицы делаете ещё один запрос на удаление данных:
Код:
Delete From ИмяДочернейТаблицы where ВнешнийКлюч = УдаляемыйProduct_ID;
Цитата:
у меня есть еще одно таблица, и в ней есть поле product ID, они связаны при помощи внешнего ключа и то есть когда я удаляю запись из таблицы product, так же должна удалять запись и из другой таблицы, как это сделать?
Больше конкретики в описании, можно дать более конкретный пример...

p.s. а что, каскадное удаление настроить не удалось?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.12.2015, 15:59   #19
АнтонКурышов
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 17
По умолчанию

p.s. а что, каскадное удаление настроить не удалось?! [/QUOTE]

я просто не понял как его настроить( ну я в IBExpert в своей базе данных поставил свойство cascade у той таблицы в которой есть внешний ключ, и что надо дальше делать я не понял
АнтонКурышов вне форума Ответить с цитированием
Старый 24.12.2015, 16:33   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А дальше при удалении записи в таблице главной из подчиненной удалятся все у которых ключевое поле содержит такое же значение автоматом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление повторяющихся слов. Delphi. Lazarus. 0льга Lazarus, Free Pascal, CodeTyphon 6 14.12.2015 20:13
Удаление записей подчиненной таблицы AVGRIN SQL, базы данных 1 07.07.2015 08:54
Delphi (Lazarus). Удаление нечётных элементов в дереве. Ovenvan Помощь студентам 7 16.06.2015 10:57
Удаление и поиск записей из таблицы Kolosok Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 21.05.2015 19:30
Удаление, обновление записей из MySQL таблицы xDjarx БД в Delphi 2 14.05.2008 13:36