Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление строки из БД 
:(
    Опции темы
kwotz
Дата 15.12.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 25
Регистрация: 6.1.2007
Где: Майкоп

Репутация: нет
Всего: нет



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

ADOTable1.delete.

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

PM MAIL   Вверх
Exai1e
Дата 15.12.2007, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



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


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
Vas
Дата 16.12.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Код

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

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

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


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Данкинг
Дата 16.12.2007, 20:59 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Vas @ 16.12.2007,  18:12)
Код

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

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

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


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Hang
Дата 17.12.2007, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 16.12.2007
Где: Вологда

Репутация: нет
Всего: 3



Для этого нужно использовать SQL запрос для "ТаблицыВ" 

В ADOQuery пишешь:

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

Настрой параметр DataType для id
Задай параметр id (ADOQuery.Parameters.ParamByName('id').Value:=...) и выполни запрос ADOQuery.ExecSQL и обнови таблицу!
PM ICQ   Вверх
Vas
Дата 17.12.2007, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



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




--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Akella
Дата 17.12.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



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

Значит у тебя настроена ссылочная целостность. Причём таким образом, что при удалении записи из Мастер-таблицы удаляются все привязанные записи из детальное таблицы
PM MAIL   Вверх
Anark1
Дата 17.12.2007, 12:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: 1
Всего: 11



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


--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
Rodman
Дата 17.12.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



PM MAIL WWW Skype GTalk YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.