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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2010, 20:40   #1
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию SQL процедура DELETE

Добрый день. Требуется удалить запись из таблицы. Суть такова есть 2 связанные таблицы по ключу. С главной таблицы выбираем записи которые меньше кого то значения. Далее надо удалить эти записи с 1 таблицы соответственно и со второй таблицы приаязанные записи
Как сформировать SQL
mar4elo вне форума Ответить с цитированием
Старый 19.02.2010, 22:49   #2
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

mar4elo, если СУБД поддерживает каскадные отношения, то просто устанавливаем их как надо и удаляем только из главной таблицы delete from MAINTABLE where ID_ in (1,2,3), если нет, то перед этим делаем delete from CHILDTABLE where FKEY_ in (1,2,3)
Антон Ю.Б. вне форума Ответить с цитированием
Старый 20.02.2010, 03:45   #3
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию

Ничего не понял((((( плз поподробней с примером sql
mar4elo вне форума Ответить с цитированием
Старый 20.02.2010, 06:03   #4
-MagicAlex-
Пользователь
 
Аватар для -MagicAlex-
 
Регистрация: 28.12.2009
Сообщений: 42
По умолчанию

Я думаю было бы проще вам помочь, если б вы указали СУБД, с которой работаете...
-MagicAlex- вне форума Ответить с цитированием
Старый 20.02.2010, 20:43   #5
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию

Исходник проекта
Вложения
Тип файла: rar Напоминалка.rar (114.7 Кб, 28 просмотров)
mar4elo вне форума Ответить с цитированием
Старый 20.02.2010, 21:07   #6
mar4elo
Форумчанин
 
Регистрация: 17.04.2008
Сообщений: 146
По умолчанию

требуется с MAINTABLE удалить выделеную запись+с CHILDTABLE привязанные записи....
mar4elo вне форума Ответить с цитированием
Старый 20.02.2010, 21:38   #7
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

Код:
delete from CHILDTABLE where = (select * form MAINTABLE where знач1>знач2) and MAINTABLE.ключ=CHILDTABLE.ключ
я бы сделал так. но в sql'e я ещё новичек и не уверен, что будет работать. поправьте если запрос не тот ))
проверить нету возможности
Life if about choices
Make the right choice

Последний раз редактировалось TaTT DoGG; 20.02.2010 в 21:48.
TaTT DoGG вне форума Ответить с цитированием
Старый 22.02.2010, 09:43   #8
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

TaTT DoGG, то что ты написал работать не будет...

если субд не поддерживает каскадные отношения то можно воспользоваться вот такими SQL-ями

Код:
 
delete from CHILDTABLE
 where CHILDTABLE.[ключевое поле]=[значение];

delete from MAINTABLE
 where MAINTABLE.[ключевое поле]=[значение];
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 22.02.2010, 12:54   #9
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

значит надо учить ))
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Старый 22.02.2010, 23:24   #10
MAX/2-2-0B
Новичок
Джуниор
 
Регистрация: 22.02.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
TaTT DoGG, то что ты написал работать не будет...

если субд не поддерживает каскадные отношения то можно воспользоваться вот такими SQL-ями

Код:
 
delete from CHILDTABLE
 where CHILDTABLE.[ключевое поле]=[значение];

delete from MAINTABLE
 where MAINTABLE.[ключевое поле]=[значение];
Подкорректирую этот же код по заданному условию если ключевое поле меньше какого то значения:

Код:
 
delete * from CHILDTABLE
 where ([CHILDTABLE].ключевое поле<=[значение]);

delete * from MAINTABLE
 where ([MAINTABLE].ключевое поле<=[значение]);
Жаль что не получаться скачать с форума саму базу mar4elo, т. к. сижу с мобильного.)

Последний раз редактировалось MAX/2-2-0B; 22.02.2010 в 23:41. Причина: Коррекция
MAX/2-2-0B вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
error C2541: 'delete' : cannot delete objects that are not pointers novokhatsky Общие вопросы C/C++ 2 14.12.2009 10:25
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
SQL: Insert и Delete в чем ошибка? FReeMAN(Q) Помощь студентам 2 17.04.2009 18:09
Перегрузка операций new, new[], delete, delete[] IgorKr Общие вопросы C/C++ 1 22.10.2008 12:14
SQL процедура вместо перебора записей XPAiN БД в Delphi 5 11.09.2008 13:59