Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Удаление строки из БД


Автор: kwotz 15.12.2007, 21:09
Хай. Помогите, а то че-то я туплю! Хочу удалить строку из БД, использую:
Код

ADOTable1.delete.

Но кроме этой строки удаляется еще и строка, к которой привязана удаляемая. Т.е. у «а» есть «в», я хочу удалить текущее «в» и добавить новое «в», но новое «в» удаляется и создается, и при этом «а» уже удалено!!! Как вариант, можно просто обновить «в», но как???

Автор: Exai1e 15.12.2007, 22:35
Первое, ошибся разделом
Второе, почему бы не использовать SQL ?

Автор: Vas 16.12.2007, 18:12
Код

AdoTable1.Edit; //открываем редактирование текущей записи
бла..бла..бла
AdoTabl1.Post; //сохраняем сделанные изменения 

Если возникли вопросы, читаем хелп  smile 

PS: Я бы на вашем месте прислушался бы к словам Exai1e и воспользовался SQL.

Автор: Данкинг 16.12.2007, 20:59
Цитата(Vas @ 16.12.2007,  18:12)
Код

AdoTable1.Edit; //открываем редактирование текущей записи
бла..бла..бла
AdoTabl1.Post; //сохраняем сделанные изменения 

Если возникли вопросы, читаем хелп  smile 

Енто с каких таких пор для удаления строки стали нужны .edit с .post ? smile 

Автор: Hang 17.12.2007, 00:14
Для этого нужно использовать SQL запрос для "ТаблицыВ" 

В ADOQuery пишешь:

Delete from ТаблицаВ
where IDтаблицыВ=:id

Настрой параметр DataType для id
Задай параметр id (ADOQuery.Parameters.ParamByName('id').Value:=...) и выполни запрос ADOQuery.ExecSQL и обнови таблицу!

Автор: Vas 17.12.2007, 07:58
Данкинг, читаем пост полностью, в нем есть еще вопрос!!!
Цитата(kwotz @  15.12.2007,  21:09 Найти цитируемый пост)
Как вариант, можно просто обновить «в», но как???


Автор: Akella 17.12.2007, 09:12
Цитата(kwotz @  15.12.2007,  21:09 Найти цитируемый пост)
Но кроме этой строки удаляется еще и строка, к которой привязана удаляемая. Т

Значит у тебя настроена ссылочная целостность. Причём таким образом, что при удалении записи из Мастер-таблицы удаляются все привязанные записи из детальное таблицы

Автор: Anark1 17.12.2007, 12:19
kwotz, если происходит ссылочное удаление, то не 
Цитата
у «а» есть «в»
, а у "в" есть "а". Каскадное удаление происходит когда удаляется запись из главной таблицы, а не наоборот. Отсюда, как мне кажется и все проблемы.
Если стоит задача изменить запись, то проще это сделать SQL оператором UPDATE.

Автор: Rodman 17.12.2007, 19:08
kwotz, почитай
http://forum.vingrad.ru/index.php?show_type=forum&showtopic=174138&kw=простейшие-методы-базой

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)