Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление записи из базы данных mdb 
:(
    Опции темы
badman
Дата 30.9.2004, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 2.4.2003
Где: Североморск, Мурм анская обл.

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



Не подскажите, желательно на примерчике, как реализовать САБЖ выбранной. Я делаю так, но ничего не получается?
ADOTable1.DeleteRecords := arCurrent;
PM MAIL WWW   Вверх
Dynamic
Дата 30.9.2004, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код
ADOTable1.Delete
?


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
badman
Дата 1.10.2004, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 2.4.2003
Где: Североморск, Мурм анская обл.

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



Спасибо большое, а возможно ли удаление всех записей из связанной таблице, например: есть две таблицы главная и подчиненная, в главной удаляется запись, а в подчиненной есть N кол-во записей относящихся к записи в главной таблице. Вот их то и надо удалить все сразу, вопрос как?
PM MAIL WWW   Вверх
Гость_guest
Дата 1.10.2004, 14:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











если связ имеет параметр cascade то ето произаидет автоматичеки, в противном случае нужно удолять в ручную
  Вверх
badman
Дата 1.10.2004, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 2.4.2003
Где: Североморск, Мурм анская обл.

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



Цитата
если связ имеет параметр cascade то ето произаидет автоматичеки, в противном случае нужно удолять в ручную

А где этот параметр устанавливается?
PM MAIL WWW   Вверх
Dynamic
Дата 1.10.2004, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В общем случае можно делать так:
Код
var Cascade: boolean = nil; // флаг каскадного удаления
.............
procedure TDataModule.MasterTableBeforeDelete(DataSet: TDataSet);
begin
    Cascade := true;
    while not DetailTable.IsEmpty do DetailTable.Delete;
    Cascade := false;
end;

procedure TDataModule.DetailTableBeforeDelete(DataSet: TDataSet);
begin
    if not Cascade then
      if MessageBox(..........) <> ID_YES then abort;
end;


Флаг нужен, чтобы MessageBox не вылазил на каждой записи при каскадном удалении.
Добавлено @ 16:02
В парадоке есть опция Cascade, но она ничего не удаляет, а просто не позволяет удалить мастер-запись, для которой есть деталь-записи, т.е. просто ограничение. Для акцесса не знаю.


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Pakshin A. S.
Дата 1.10.2004, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

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



А я бы так:
Код

with ADOQuery1{Настраивается так же как и Table} do
begin
 Close;
 SQl.Text:='Delete * from Table2 where Table2.Id = Table1.Id;';
 ExecSQL;
 Close;
 SQL.Text:='Delete * from Table1;';
 ExecSQL;
 Close
end;

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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