Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi и базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.81
Vit@L
Кратк. - сест. тал.
71 / 30 / 2
Регистрация: 13.03.2008
Сообщений: 399
#1

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

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

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

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

Подскажите пожалуйста, как быть?
Заранее спасибо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2010, 06:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как удалить сразу несколько записей из таблицы? (Delphi БД):

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

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

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

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

Как удалить две строки в listbox сразу?
есть текстовый файл который загружается в listbox <пробел> заполненная...

Как в ADOQuery добавить две таблицы сразу?!
Как в ADOQuery добавить две таблицы сразу?!Что надо прописать в свойстве SQL...

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
Vit@L
Кратк. - сест. тал.
71 / 30 / 2
Регистрация: 13.03.2008
Сообщений: 399
16.02.2010, 08:25  [ТС] #3
\/, Спасибо большое! Первый вариант работает и устраивает вполне.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2010, 08:25
Привет! Вот еще темы с решениями:

Как добавить данные сразу в две таблицы по связанному ID
Имеется таблица 1: И таблица 2: Нужно выловить ID_y или (ID-ID1, по которым...

Как добавить в таблицу mdb файла Аксесса несколько записей одним запросом?
Собственно вопрос в теме. Искал по инету, но ничего путного не нашел. (хотя,...

Delphi! ClientDataSet ФИЛЬТР!? как выбрать несколько записей по заданному фильтру (+код)?
procedure TForm1.TextTrayIcon1Click(Sender: TObject); begin ...

SELECT COUNT(*) количество записей всей таблицы в переменную, как(?
Добрый день! Скажите пожалуйста, как записать в переменную количество...


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

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

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