|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
Здравствуйте ! Есть хранимка: Код: 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. 28. 29. 30. 31. 32.
Она прекрасно работает. Пытаюсь сунуть ее в модель EDM. Класса при этом не создается, в контексте есть функция, которая почему-то возвращает int. Посмотрел хранимку на SQL Server и увидел, что возвращает она целое число, т.е. Int. Подскажите пожалуйста, где кривизна ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2020, 16:44 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
MsGuns Посмотрел хранимку на SQL Server и увидел, что возвращает она целое число, т.е. Int. Подскажите пожалуйста, где кривизна MsGuns Пытаюсь сунуть ее в модель EDM. Класса при этом не создается, в контексте есть функция, которая почему-то возвращает int. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2020, 20:00 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
alexeyvg, EDM это Entity Data Model. ТС использует этот фреймворк для доступа к данным SQL в виде объектной модели. Могу ошибаться но вроде EDM использует системные хранимки для получения метаданных результирующих наборов хранимой процедуры. что то типа sp_describe_first_result_set / sp_stored_procedures MSGuns вы можете посмотреть в трассировке какой запрос прилетает на сервер от вашей модели. скорее всего не получается определить точные метаданные результирующего набора поскольку у вас в хранимке используется динамический sql. add: можете сделать процедуру обертку которая будет дергать вашу динамику с директивой with result set ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2020, 20:41 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
felix_ff, Вы не ошибаетесь :) Переделал хранимку на явный Select из там же создаваемой временной таблицы, куда предварительно инсертится дмнамический SQL. Все заработало. Но мне вообще не очень нравится идея использования временных таблиц без крайней необходимости. Здесь же никакой алгоритмики кроме "хитрого" селекта нет. Мысль с with result set показалась мне интересной. Надо поисследовать :) Спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2020, 23:59 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
Посмотрел. Увы, не выход с with result set и вот почему. Это именно "обертка" над хранимкой. И мне надо писать ее собственно в модели (например, в репозитории). Точно также "ручками" добавлять соответствующий класс. Т.е. практически все делать руками. Тогда возникает вопрос: а зачем собственно мне EDM если все приходится писать руками ? Однако ответ не так прост - в модели EDM используется куча корректно отмапированнх таблиц, вьюх и UDF с SP. Проект прекрасно с ними взаимодействует, написано несколько типизированных представлений и методов контроллера, где привязка к модели работает как часы (как прямая - от контроллера в представлению, так и обратная - от клиента в контроллер). Т.е. полный отказ от EDM приведет к ПОЛНОЙ замене кода модели на ручной. Прелести ORM EDM как не бывало ! В общем, как я понял, нужно подстраивать серверный код (имеется в виду БЛ SQL-Server) под "особенности" мелкомягкого EDM хотя бы для того, чтобы обходить его глюки :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 00:17 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
MsGuns З Пытаюсь сунуть ее в модель EDM. Класса при этом не создается, в контексте есть функция, которая почему-то возвращает int. Посмотрел хранимку на SQL Server и увидел, что возвращает она целое число, т.е. Int. Подскажите пожалуйста, где кривизна Дык, вашЪ динамический 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.
скормите его EDM. Опосля чего верните взад исходный код процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 11:26 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
MsGuns Переделал хранимку на явный Select из там же создаваемой временной таблицы, куда предварительно инсертится дмнамический 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 12:00 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
invm, Спасибо. Принял к сведению. Заменил в ХП временную таблицу на таблицу-параметр. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 17:50 |
|
Куда девается выходной НД как результат выполнения ХП (MS SQL 2012)
|
|||
---|---|---|---|
#18+
MsGuns, если я правильно понял комментарий от invm, он советует вставить with result sets внутрь вашей хранимки. тогда вам не понадобится ни #временная таблица, ни @таблица-переменная. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 19:39 |
|
|
start [/forum/topic.php?fid=46&msg=39911317&tid=1686681]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 20ms |
total: | 167ms |
0 / 0 |