powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
9 сообщений из 9, страница 1 из 1
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #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
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #38959253
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.UlugbekМне не нравиться в этом подходе что генерация сиквенса при инсерте если
отменяет юзер то секвенс уже генерировался.
И ты боишься израсходовать мировой запас. Ню-ню.

Вообще ничего не делай с БД до нажатия пользователем кнопки "Сохранить". Тогда он уже не
сможет отменить операцию и мировой запас натуральных чисел будет спасён.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #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
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #38959707
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.UlugbekЧерез процедуру дайте правильную путь
Нет через процедуру правильного пути.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #38959791
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.UlugbekХотелось через процедуру все это сделать
это как, интересно, если "потом заполняю детали много товара"? Как ты эти "детали" собрался в процедуру передавать?
...
Рейтинг: 0 / 0
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #38959796
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvКак ты эти "детали" собрался в процедуру передавать?
Именно это он и спрашивает: как их всю пачку всунуть в одну процедуру.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #38959797
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про GTT уже было?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #38960049
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тоже думал может через GTT
Но как правильно это сделать через GTT дайте ссылки если есть..
...
Рейтинг: 0 / 0
Как инсертить мастер детайл (инвойс) одним хранимой процедурой?
    #38960313
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbek,

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


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