|
Вопрос # 6 170/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Подскажите,пожалуйста,как решить следующую задачу: нужно, чтобы при добавлении новой строки в одну таблицу данных, автоматически добавлялась строка в другую таблицу.
Подробнее:
Имеются 2 таблицы: "заказы" и "установленные терминалы".
Между собой эти таблицы связаны полем "Код установленного терминала".
Данные в таблицу "заказы" добавляются с помощью формы EditForm, которая содержит поля ввода TEdit, связанные с определенными полями таблицы. Существует три вида заказа (они представлены выпадающим списком) - установка, замена, отключение.
При добавлении заказа типа "установка" в таблице
"установленные терминалы" должна появиться новая запись о терминале со статусом "установлен".
При добавлении заказа типа "замена" или "отключение" у записи об этом терминале из таблице "установленные терминалы" статус должен поменяться на "заменен" или "отключен".
На данный момент приходится вводить данные отдельно в каждую таблицу,но при этом велика возможность ошибки пользователя.
Приложение: Переключить в обычный режим- procedure TEditForm.Button1Click(Sender: TObject);
- begin
- if DataModule1.OrdersTable.Modified then
- dataModule1.OrdersTable.Post;
- end;
-
 |
Вопрос задала: Вирра (статус: Посетитель)
Вопрос отправлен: 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 (статус: 3-ий класс), 29 мая 2012, 15:45 [#5]:
Триггером можно Ох, аксесс...
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|