|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
Добрый день. Решаю задачу по каскадному обновлению дерева рецептов. Кратко: Рецепт может содержать набор сырья или любой другой рецепт, например полуфабрикаты. Рецепт1: сырье1, сырье2, сырье3 Рецепт2: рецепт1, сырье4, сырье5 Рецепт3: рецепт1, рецепт2, сырье1 Задача заключается в внесении себестоимости для одного из сырья, с последующим пересчетом себестоимости всех рецептов. Т.е. в нашем случае, если изменить себестоимость сырья 1, то необходимо пересчитать Рецепт1, затем Рецепт2 и Рецепт 3 Написал процедуру: Код: sql 1.
Далее пытаюсь динамически сформировать курсор, который ищет второй уровень по дереву и запускает эту же процедуру Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
при выполнении вываливается ошибка Ниже результат вывода print @sql Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Почему я решил сделать динамический курсор? При каскадном запуске процедуры, появляется ошибка, о том что курсор уже создан. Почему появляется ошибка не могу понять... Может нельзя делать динамические курсоры из текстовой переменной? Может есть более простое решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 13:51 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
go не является командой TSQL, и вы ее никогда не выполните через exec З.Ы. Но решение -- ужаснее не придумаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 13:54 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич go не является командой TSQL, и вы ее никогда не выполните через exec З.Ы. Но решение -- ужаснее не придумаешь. Какие варианты посоветуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 14:02 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
ВячеславЛ Гавриленко Сергей Алексеевич go не является командой TSQL, и вы ее никогда не выполните через exec З.Ы. Но решение -- ужаснее не придумаешь. Какие варианты посоветуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 14:07 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич ВячеславЛ пропущено... Какие варианты посоветуете? Спасибо, вроде пошло. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 14:29 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
ВячеславЛ, курсоры локальными объявите. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 16:26 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
ВячеславЛ, А не проще сделать сырье с ценами в отдельную таблицу, рецепты тоже и 3 таблицу их связь. Приложил пример Смотря на ваши данные Рецепт1: сырье1, сырье2, сырье3 Рецепт2: рецепт1, сырье4, сырье5 Рецепт3: рецепт1, рецепт2, сырье1 я так понял Рецепт2 состоит из того сырья, что и Рецепт1 + сырье4, сырье5, а Рецепт3 из Рецепт1 и Рецепт2, но почему сырье1 повторяется? мне кажется, что бы избавиться от таких сложных действий с курсоров, проще изменить архитектуру хранения данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 00:35 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
Focha но почему сырье1 повторяется? Например, яйца могут использоваться для приготовления теста, а итоговое изделие - хачапури с яичницей. Сырьё одно, использование разное. А если это рецепты из фармацевтики или химической отрасли, то один и тот же реактив может применяться в разных целях. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 09:43 |
|
динамические курсоры из переменной sql и каскадное обновление
|
|||
---|---|---|---|
#18+
env Focha но почему сырье1 повторяется? Например, яйца могут использоваться для приготовления теста, а итоговое изделие - хачапури с яичницей. Сырьё одно, использование разное. А если это рецепты из фармацевтики или химической отрасли, то один и тот же реактив может применяться в разных целях. да, что не подумал ... |
|||
:
Нравится:
Не нравится:
|
|||
21.08.2020, 13:10 |
|
|
start [/forum/topic.php?fid=46&fpage=50&tid=1685747]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 262ms |
total: | 400ms |
0 / 0 |