Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
Кратк. - сест. тал.
85 / 48 / 4
Регистрация: 13.03.2008
Сообщений: 543
1

Как удалить сразу несколько записей из таблицы?

16.02.2010, 06:06. Просмотров 3427. Ответов 2
Метки нет (Все метки)


Привет всем.
В общем? суть вопроса такова: Используется БД MS Access, компоненты ADOQuery и DBGridEh. По некоторому запросу из таблицы выбирается несколько записей (их может быть как 2, 5 так и 50, 100). Подскажите можно ли как-то удалить все эти выбранные записи не используя цикл??? Т.е. как-нибудь так: ADOQuery1.DeleteAll; ну либо что-то в этом роде?

Я пробовал использовать ADOQuery1.DeleteRecords(); но здесь выдается ошибка: "Операция не допускается в данном контексте"

Подскажите пожалуйста, как быть?
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2010, 06:06
Ответы с готовыми решениями:

Как с помощью SQL запроса вставить сразу несколько записей?
Возможно ли с помощью SQL запроса вставить несколько записей, что то вроде этого:...

Как добавить несколько записей из таблицы в ячейку другой таблицы через запятую?
имеется бд кулинарная книга, где при добавлении блюда, продукты добавлялись через запятую, по...

В бд создается сразу несколько записей
Привет всем, хотелось бы задать пару вопросов: 1) Пишу программу под бд IB. Компоненты...

Как к одной записи прикрепить несколько других записей из другой таблицы?
Как к одной записи из AdoTable1 прикрепить несколько записей из ADOTable2 ? например просматриваю...

2
\/
12 / 11 / 1
Регистрация: 11.02.2010
Сообщений: 57
16.02.2010, 08:12 2
Лучший ответ Сообщение было отмечено Vit@L как решение

Решение

Vit@L, ну если ты выбираешь эти данные, то соотвественно знаешь условия фильтрации.
Поэтому TADOQuery и в нем:
Delphi
1
2
ADOQuery.SQL.Text := 'Delete From <имя таблицы> Where <условия теже что и в запросе на выборку>';
ADOQuery.ExecSQL;
Возможно нужно использовать TADOCommand, правда чем она отличается от TADOQuery.ExecSQL не знаю, потому что никогда не работал с ADO)

ну естественно, можно строку команды формировать нужно не в лоб, а например вот так:
Delphi
1
2
3
4
xSQL := 'Delete From %s Where %s';
xTable := 'MyTable';
xWhere := 'Code_MyTable < ' + IntToStr(MaxDelCode); //MaxDelCode максимальный код для удаления
ADOQuery.SQL.Text := Format(xSQL,[xTable, xWhere]);
0
Кратк. - сест. тал.
85 / 48 / 4
Регистрация: 13.03.2008
Сообщений: 543
16.02.2010, 08:25  [ТС] 3
\/, Спасибо большое! Первый вариант работает и устраивает вполне.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2010, 08:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как отредактировать сразу несколько записей в бд
Как отредактировать сразу несколько записей в бд?

Как удалить сразу несколько файлов
Здраствуйте я помогите пожалуйста с php кодом я тут хочу сделать один мог и не могу понять как...

Как удалить из массива сразу несколько элементов
Как удалить из массива сразу несколько элементов? Например с 3 элемента по 5

Добавление записей сразу в две таблицы
Здравствуйте! Есть форма(Реєстрація), внутри которой есть подчиненная форма(ZNO). Добавляются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.