Дайте пример заполнение мастер детайл (инвойс) одним хранимой процедурой?
Добавлено: Чт 29 янв 2015 08:45
Привет всем
Хотел спросить можно ли заполнить мастер детайл (инвойс) одним хранимой процедурой?..
Использую компонент 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
Как такое реализовать
Детали как буду передавать в цикле? Или есть какойта способ пакетный передача
Хотел спросить можно ли заполнить мастер детайл (инвойс) одним хранимой процедурой?..
Использую компонент 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
Как такое реализовать
Детали как буду передавать в цикле? Или есть какойта способ пакетный передача