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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2012, 02:01   #1
chircov090993
Пользователь
 
Регистрация: 12.06.2010
Сообщений: 44
По умолчанию Данные из одной таблицы в другую

Здравствуйте! Нужна помощь.
Есть 3 таблицы:
Выдача: ID и прочее
Книги_выдачи: ID, ID выдачи, ID книги, Количество выданных книг
Книга: ID, имя книги, Количество книг в библиотеке.
Суть вопроса: Пользователь удаляет выдачу книги. Мне нужно, что бы при удалении книги значение из таблицы Книги_выдачи поля Количество выданных книг суммировалось к полю Количество книг в библиотеке, если ID таблицы Выдача = ID выдачи таблицы Книги_выдачи, а потом все выбранные значения удалялись из базы.
Как такое провернуть? Работаю в делфи, но логически не доходит, как считать несколько записей из таблицы и потом их удалить.
chircov090993 вне форума Ответить с цитированием
Старый 11.06.2012, 07:16   #2
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Триггер AfterDelete - твой выбор. На всякий случай - пример (для IB/FB):

Код:
CREATE OR ALTER trigger USERS_AD0 for USERS
active after delete position 0
AS
begin
   if (old.ID = 2) then update USERS set DELST = 1;
end
После удаления (after delete) записи с ID = 2 (old.ID = 2) из таблицы USERS (for USERS) запишем во все записи этой таблицы поле DELST = 1 (update USERS set DELST = 1). Под твою задачу - подгоняй по аналогии.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 11.06.2012, 19:34   #3
chircov090993
Пользователь
 
Регистрация: 12.06.2010
Сообщений: 44
По умолчанию

я работаю в Access, забыл дописать, просто не припомню триггеров в нем
chircov090993 вне форума Ответить с цитированием
Старый 11.06.2012, 19:51   #4
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Смотри в сторону BeforeDelete твоего источника данных (ADODataSet, ADOTable - что ты там используешь). Сначала выполняется это событие, в нем ты получаешь необходимые данные (например, значения полей той записи, которая вот-вот будет удалена). проводишь иные манипуляции (допустим, вносишь нужные тебе изменения в другие таблицы), и вот только после того, как эта процедура отработает, запись будет удалена.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 11.06.2012, 19:53   #5
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Кстати, отвлеченный вопрос.

А почему Access? Почему не тот же Firebird?
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 12.06.2012, 00:26   #6
chircov090993
Пользователь
 
Регистрация: 12.06.2010
Сообщений: 44
По умолчанию

учеба) делаю диплом, предложили или access+delphi или 1с
chircov090993 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенести данные с одной таблицы в другую Natashka Milashka SQL, базы данных 4 05.06.2012 14:02
Как скопировать данные таблицы из одной базы access в другую? AK BULLETS БД в Delphi 2 31.03.2010 13:09
Как с помощью SQL перенести данные из одной таблицы в другую lenuxoid БД в Delphi 1 23.04.2009 20:45
Отправлять данные из одной таблицы в другую Таня84 БД в Delphi 14 28.04.2007 23:23