Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как инсертить мастер детайл (инвойс) одним хранимой процедурой? / 9 сообщений из 9, страница 1 из 1
14.05.2015, 21:44
    #38959242
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
Привет всем
Хотел спросить можно ли заполнить мастер детайл (инвойс) одним хранимой процедурой?..
Использую компонент Devart Ibdac
Примерно делаю так
Главная форма+ДбГрид+Датасет='select * from v_orders 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

Как такое реализовать

Детали как буду передавать в цикле? Или есть какойта способ пакетно передача
...
Рейтинг: 0 / 0
14.05.2015, 22:06
    #38959253
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
mr.UlugbekМне не нравиться в этом подходе что генерация сиквенса при инсерте если
отменяет юзер то секвенс уже генерировался.
И ты боишься израсходовать мировой запас. Ню-ню.

Вообще ничего не делай с БД до нажатия пользователем кнопки "Сохранить". Тогда он уже не
сможет отменить операцию и мировой запас натуральных чисел будет спасён.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.05.2015, 12:30
    #38959694
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
Кто как реализовал инсерт мастер детайл? Через процедуру дайте правильную путь
Хочу разделить CRUD операции сделать на стороне сервере..
Пока работает.. обычный методом
МастерДатасет,Детайлдатасет у обоих CashUpdate true стоит генерация мастер сиквенса при инсерте dataset.

При нажатие Сохранить

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Try
  StartTransaction

  МастерДатасет ApplyUpdates
  ДеталДатасет ApplyUpdates
  Commit
except
  raise
  Rollback
end



Хотелось через процедуру все это сделать
...
Рейтинг: 0 / 0
15.05.2015, 12:38
    #38959707
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
mr.UlugbekЧерез процедуру дайте правильную путь
Нет через процедуру правильного пути.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.05.2015, 13:31
    #38959791
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
mr.UlugbekХотелось через процедуру все это сделать
это как, интересно, если "потом заполняю детали много товара"? Как ты эти "детали" собрался в процедуру передавать?
...
Рейтинг: 0 / 0
15.05.2015, 13:33
    #38959796
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
kdvКак ты эти "детали" собрался в процедуру передавать?
Именно это он и спрашивает: как их всю пачку всунуть в одну процедуру.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.05.2015, 13:34
    #38959797
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
про GTT уже было?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
15.05.2015, 16:28
    #38960049
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
Тоже думал может через GTT
Но как правильно это сделать через GTT дайте ссылки если есть..
...
Рейтинг: 0 / 0
15.05.2015, 20:30
    #38960313
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
mr.Ulugbek,

ты хочешь сделать "красиво", или тебя что-то другое гложет? Если "красиво", то забей, это наоборот некрасиво.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как инсертить мастер детайл (инвойс) одним хранимой процедурой? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]