Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 170

/ вопрос открыт /

Приветствую, уважаемые эксперты!

Подскажите,пожалуйста,как решить следующую задачу: нужно, чтобы при добавлении новой строки в одну таблицу данных, автоматически добавлялась строка в другую таблицу.

Подробнее:
Имеются 2 таблицы: "заказы" и "установленные терминалы".
Между собой эти таблицы связаны полем "Код установленного терминала".
Данные в таблицу "заказы" добавляются с помощью формы EditForm, которая содержит поля ввода TEdit, связанные с определенными полями таблицы. Существует три вида заказа (они представлены выпадающим списком) - установка, замена, отключение.

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

При добавлении заказа типа "замена" или "отключение" у записи об этом терминале из таблице "установленные терминалы" статус должен поменяться на "заменен" или "отключен".

На данный момент приходится вводить данные отдельно в каждую таблицу,но при этом велика возможность ошибки пользователя.

Приложение:
  1. procedure TEditForm.Button1Click(Sender: TObject);
  2. begin
  3. if DataModule1.OrdersTable.Modified then
  4. dataModule1.OrdersTable.Post;
  5. end;
  6.  


Вирра Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Вирра (статус: Посетитель)
Вопрос отправлен: 28 мая 2012, 12:59
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 29 мая 2012, 15:45; участников в обсуждении: 3.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 28 мая 2012, 19:38 [#1]:

модифицировать таблицы по очереди, используя механизм транзакций. Более подробно можно ответить только зная какая СУБД и какие компоненты для доступа к ней используются.
Вирра

Вирра (статус: Посетитель), 28 мая 2012, 19:52 [#2]:

Мережников Андрей,спасибо,что не обошли вниманием мой вопрос!Сможете подробнее рассказать,если не трудно?
СУБД Microsoft Access, технология ADO, компоненты TADOConnection, TADOTable, TADOSourse, TADOQuery.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 28 мая 2012, 20:14 [#3]:

примерно так:
ADOConnection1.BeginTrans;
try
   {модифицируем первую таблицу (добавляем,изменяем,удаляем запись)}
   {модифицируем вторую таблицу}
   ADOConnection1.CommitTrans;
except
   ADOConnection1.RollBackTrans;
   {можно выдать сообщение об ошибке}
end;
Вирра

Вирра (статус: Посетитель), 28 мая 2012, 20:33 [#4]:

Мережников Андрей, большое Вам спасибо! Буду пробовать. :-)
bugmenot

bugmenot (статус: 3-ий класс), 29 мая 2012, 15:45 [#5]:

Триггером можно Ох, аксесс...
виконання програми розпочинається з того самого мiсця, де призупинилося.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.02 сек.