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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2010, 06:06   #1
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию Как удалить сразу несколько записей из таблицы?

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

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

Подскажите пожалуйста, как быть?
Заранее спасибо!
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 16.02.2010, 06:27   #2
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
DELETE
   [ FROM ] имя_таблицы 
   [ WHERE < условие запроса> ]
Google2010 вне форума Ответить с цитированием
Старый 16.02.2010, 06:42   #3
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Так не получается. Выдает ошибку:
"Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции"
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Старый 16.02.2010, 06:49   #4
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

а вы полный код приведите! вы либо open делаете либо что то еще а надо Execsql
пример
Код:
qt:='Delete from table';
qt:=qt+' where field=12';
with qry3 do begin
      Close;
      SQL.Clear;
      sql.add(qt);
      execSql;
end;

Последний раз редактировалось Google2010; 16.02.2010 в 06:55.
Google2010 вне форума Ответить с цитированием
Старый 16.02.2010, 06:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Google2010
а надо Execsql
Google2010 +100

Vit@L, Вам надо вызывать операцию, а не пытаться открыть набор данных:
Код:
ADOQuery1.SQL.Text := 'DELETE FROM ВашаТАблица Where ВашеУсловие';
ADOQuery1.ExecSQL;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.02.2010, 07:27   #6
Vit@L
Форумчанин
 
Аватар для Vit@L
 
Регистрация: 24.06.2009
Сообщений: 216
По умолчанию

Ребята, спасибо Вам огромное, все получилось :-)
Водку мы пьем для запаха - а дури нам своей хватает!
Vit@L вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать один и тот же файл сразу в несколько папок? GvR Общие вопросы Delphi 7 08.11.2013 22:32
Как добавить сразу несколько ячеек к каждой ячейке некоего диапазона? eugenerud Microsoft Office Excel 20 24.07.2009 19:18
Как выделить несколько листов сразу? frantic150 Microsoft Office Excel 3 25.06.2009 01:25
как оператором insert вставить данные сразу в две таблицы? furstenberg БД в Delphi 2 18.10.2007 16:39
Как удалить несколько файлов? Kashp Общие вопросы Delphi 2 23.08.2007 13:38