Привет всем
Хотел спросить можно ли заполнить мастер детайл (инвойс) одним хранимой процедурой?..
Использую компонент Devart Ibdac
Примерно делаю так
Главная форма+ДбГрид+Датасет='select * from view order by 1'
Три кнопки Добавить,Редактировать,Удалить
При нажатия кнопки Добавить открываю вторую форму детали
для редактирование использую два датасета у обоих cachedUpdate = true стоит
1 - МастерДатасет = 'select * from master where id=-1'
2 - Детайл = 'select * from master where id=:master_id'
Мастер Сиквенс беру при инсерте. Заполняю мастера потом заполняю детали много товара если нажимать на отмену то все отменяется в базе ничего ни пишется если нажимать сохранить то все сохраняеться.. и обновляю Главную форму датасет..
Мне не нравиться в этом подходе что генерация сиквенса при инсерте если отменяет юзер то секвенс уже генерировался.
Как та можно все это в одном процедуре сделать
Примерно заполнил шапку инвойса потом детали к нему... и сохранить
Try
СтартТранзакция
вызов процедуры
Коммит
except
Роллбек
Рефреш датасет
ХП Процедура примерно
insert into master (gen(seq,1),name)
returning id into :id
insert detail (mastid)
:id
Как такое реализовать
Детали как буду передавать в цикле? Или есть какойта способ пакетный передача
Дайте пример заполнение мастер детайл (инвойс) одним хранимой процедурой?
Re: Дайте пример заполнение мастер детайл (инвойс) одним хранимой процедурой?
Генераторы возвращают значения (и сохраняют свои значения на диске) вне контекста транзакции пользователя. Вы можете получить более подробную информацию об этом в документации FireBird, в разделе "Generators and transactions":
http://www.firebirdsql.org/pdfmanual/Fi ... -Guide.pdf
Вопрос о заполнение мастер-детайл таблиц из одной хранимой процедуры зависит от архитектуры Вашего приложения, а не от компонентов IBDAC. Информацию об алгоритмах заполнения таблиц и коде процедур Вы можете найти в документации к серверу или на профильных форумах.
http://www.firebirdsql.org/pdfmanual/Fi ... -Guide.pdf
Вопрос о заполнение мастер-детайл таблиц из одной хранимой процедуры зависит от архитектуры Вашего приложения, а не от компонентов IBDAC. Информацию об алгоритмах заполнения таблиц и коде процедур Вы можете найти в документации к серверу или на профильных форумах.