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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2009, 22:46   #1
Хитрец
Пользователь
 
Регистрация: 26.01.2009
Сообщений: 48
По умолчанию Не могу удалить записи.

Помогите как правельно сделать?

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

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin

DataModule1.ADOQuery1.Active := false;
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.ADD('DELE TE FROM Заказ WHERE LinkKey=19');
DataModule1.ADOQuery1.Active := True;

end;

Все записи имеют общее значения поля LinkKey для примера 19...

Вобщем ругается на меня "Текущий проводник не поддерживает возврат наборов записей в результате одной операции".

Что не так делаю?
Хитрец вне форума Ответить с цитированием
Старый 02.02.2009, 08:46   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Попробуй так :
Код:
DataModule1.ADOQuery1.Close;
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.ADD('DELETE FROM Заказ WHERE LinkKey=19');
DataModule1.ADOQuery1.Open;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 02.02.2009, 08:54   #3
Ramires
Пользователь
 
Аватар для Ramires
 
Регистрация: 23.07.2008
Сообщений: 69
По умолчанию

Насколько помню метод ADOQuery1.Open применим только для SELECT,
а для операции DELETE нужно применять ADOQuery1.ExecSQL
I like beer.. more beer..
Ramires вне форума Ответить с цитированием
Старый 02.02.2009, 12:34   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Query.Active := true для удаления и вставки делать не надо!!!
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 02.02.2009, 14:35   #5
plato
Форумчанин
 
Регистрация: 23.01.2009
Сообщений: 107
По умолчанию

правильно только ADOQuery1.ExecSQL
и не забудьте подарить детям шоколадку
plato вне форума Ответить с цитированием
Старый 02.02.2009, 16:23   #6
5naip
Форумчанин
 
Аватар для 5naip
 
Регистрация: 05.10.2007
Сообщений: 536
По умолчанию

Код:
ADOQuery1.SQL.ADD('DELETE FROM Заказ WHERE LinkKey=19');
насколько я понял, все записи в таблице ЗАКАЗ имеют поле Linkkey=19?
в таком случае можно даже
Код:
ADOQuery1.SQL.ADD('DELETE FROM Заказ');
rocklistener...
5naip вне форума Ответить с цитированием
Старый 02.02.2009, 16:31   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в таком случае можно даже
Нельзя - Это удалит все без исключения записи
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.02.2009, 18:33   #8
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
Нельзя - Это удалит все без исключения записи
Цитата:
Все записи имеют общее значения поля LinkKey для примера 19...
что мешает этому?
Код:
ADOQuery1.SQL.ADD('DELETE FROM Заказ');
dron-s вне форума Ответить с цитированием
Старый 02.02.2009, 20:58   #9
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,537
По умолчанию

Цитата:
Нельзя - Это удалит все без исключения записи
Согласен.

Отрывок из учебника:
Цитата:
Оператор SQL DELETE позволяет удалять строки из таблиц. Например:
DELETE FROM test_table;

В такой форме оператор DELETE удаляет все строки из таблицы test_table. Можно ограничиться удалением только определенных строк, если использовать выражение WHERE. Например:
DELETE FROM test_table WHERE паmе=`Vasia`;

В этом случае будут удалены строки, соответствующие критерию, указанному в выражении WHERE.
Gorychev вне форума Ответить с цитированием
Старый 02.02.2009, 21:29   #10
5naip
Форумчанин
 
Аватар для 5naip
 
Регистрация: 05.10.2007
Сообщений: 536
По умолчанию

погодите спорить
я знаю, что делает delete без where.
написал такой сокращенный вариант, так как прдположил что :
Цитата:
Все записи имеют общее значения поля LinkKey для примера 19...
имеется ввиду "все записи ТАБЛИЦЫ". Просто недопонял автора...
rocklistener...

Последний раз редактировалось 5naip; 03.02.2009 в 17:09. Причина: что-то зпт зря воткнул...
5naip вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу удалить Detka Свободное общение 4 22.08.2008 23:19
Удалить 2 записи. ADO... Roof БД в Delphi 9 18.08.2008 20:32
Подскажите как программно удалить все записи Worms БД в Delphi 3 04.03.2008 16:30
не могу удалить доктора!!! ronich Помощь студентам 11 30.12.2007 23:53
удалить записи в таблице Dbf. pups БД в Delphi 7 15.12.2006 19:19