Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Метод Delete


Washington ©   (2007-12-21 15:09:00) 

Использую сабж с помощью ADODataSet:
with ADODataSet1 do
begin
close;
CommandText:='Select * From '+table1+' Where Field1=1';
open;
delete;
end;

В итоге ошибка:
"Key column information is insufficient or incorrect. Too many rows were affected by update. "
Код написан полностью, не повторяется. Что значит сия ошибка, подскажите пожалуйста!


Washington   (2007-12-22 08:40:00) [1]


> Anatoly Podgoretsky ©   (21.12.07 19:41) [10]

Ну это я понял, исходя из
> sniknik ©   (21.12.07 15:55) [9]


Anatoly Podgoretsky   (2007-12-21 19:41:00) [2]

> Washington  (21.12.2007 15:20:06)  [6]

> Получается сразу несколько нельзя удалить?

Можно


sniknik   (2007-12-21 15:55:00) [3]

> Получается сразу несколько нельзя удалить?
можно, только не методом delete, он для одиночных записей, а методом DeleteRecords с параметром adAffectGroup (вроде бы... delete это тоже самое только с adAffectCurrent).

это на случай если необходимо удаление именно от датасета (для исключения перезапроса для синхронизации данных после удаления отдельным запросом например).


Washington   (2007-12-21 15:25:00) [4]

не пробовал. Сделал раздельно - всё работает. спасибо ещё раз.


Palladin   (2007-12-21 15:22:00) [5]

а религия не позволяет выполнить delete from table1 where field1=1


Washington   (2007-12-21 15:20:00) [6]


> под условие удаления (составленный методом delete; запрос)
> попало более чем одна запись.

Это понял. Всё правильно - их две. Спасибо. Буду удалять раздельно. Получается сразу несколько нельзя удалить?


Palladin   (2007-12-21 15:17:00) [7]

а... ну да :)


sniknik   (2007-12-21 15:16:00) [8]

> Слишком много строк измениться при обновлении
изменилось. ошибка выдается после. предварительных проверок до удаления нет.


clickmaker   (2007-12-21 15:15:00) [9]


> delete;

чего 'delete'?
причем тут open?


Palladin   (2007-12-21 15:15:00) [10]

Тебе перевести? примерно
"Информации о ключевом поле недостаточно или она некорретна. Слишком много строк измениться при обновлении"


sniknik   (2007-12-21 15:15:00) [11]

> Что значит сия ошибка
под условие удаления (составленный методом delete; запрос) попало более чем одна запись. изза отсутствующего ключевого поля (неверной информации о нем).
ключ позволяет однозначно идентифицировать записи. у тебя его нет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо