Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возможно ли возвращение табличной переменной из процедуры / 13 сообщений из 13, страница 1 из 1
11.12.2019, 12:52
    #39901186
AlexKM2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
Добрый день, коллеги.
Никак не могу найти в интернете ...
Ситуация такая:
Есть SQL проца, возвращает в C# настроечные данные.
Но ещё и
Код: sql
1.
select

, как табличную переменную; с этими простыми переменными хотелось бы получать.
Для того в SQL сделал табличный тип данных, !!!НО не могу этой табличной переменной сказать OUTPUT, ругается ...

Код: sql
1.
2.
3.
4.
5.
create procedure [schema1].[sp_Settings_Get]
                         @dataTbl [schema1].TableType readonly output -- вот здесь ругается ...
                        ,@tryToTakeValue int = null output
as
.......



Выход есть, просто написать ещё одну процу, но это не комильфо.

Коллеги, есть варианты, соображения?

Заранее спасибо.
...
Рейтинг: 0 / 0
11.12.2019, 13:04
    #39901197
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
AlexKM2020
Код: sql
1.
@dataTbl [schema1].TableType readonly output -- вот здесь ругается ...

Вот же, написано: readonly
Убрать readonly нельзя, в сиквеле табличные параметры запрещено менять. Не шмогли :-(
...
Рейтинг: 0 / 0
11.12.2019, 13:05
    #39901199
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
Во-первых, желаемое невозможно.
Во-вторых, из процедур и так можно возвращать сколько угодно наборов данных, написав там обычные select'ы.
...
Рейтинг: 0 / 0
11.12.2019, 13:08
    #39901202
AlexKM2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
alexeyvg, SQL ругается не на readonly, а на output

invm, спасибо.
но, это именно селектами, а надо OUTPUT, та как передача в C#.
Значит буду просто писать вторую процу, она как раз будет делать один селект.

Спасибо, коллеги.
...
Рейтинг: 0 / 0
11.12.2019, 13:11
    #39901205
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
AlexKM2020
alexeyvg, SQL ругается не на readonly, а на output
Да, я вам про это и написал.
...
Рейтинг: 0 / 0
11.12.2019, 13:17
    #39901209
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
AlexKM2020
но, это именно селектами, а надо OUTPUT, та как передача в C#.

а в чем проблема в C# перебрать resultset-ы?
...
Рейтинг: 0 / 0
11.12.2019, 13:17
    #39901210
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
AlexKM2020
но, это именно селектами, а надо OUTPUT, та как передача в C#.

И что же мешает в C# получить выборку из ХП? Это как раз в MSSQL с этим проблемы - есть ряд ситуаций, когда нельзя сделать insert into .. exec. А в C# это делается абсолютно естественным образом для любого количество резалтсетов.
...
Рейтинг: 0 / 0
11.12.2019, 13:25
    #39901216
AlexKM2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
Сон Веры Павловны, да, я так и делал, одной большой выборкой, но это не здорово, много лишнего, потому просто двумя процами придётся...
А мелкомягким есть повод задуматься над возможностью возвращать табличные пользовательские типы данных...
...
Рейтинг: 0 / 0
11.12.2019, 13:27
    #39901217
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
AlexKM2020,

в ХМЛ сериализируй и возвращай параметром
...
Рейтинг: 0 / 0
11.12.2019, 13:31
    #39901219
Shakill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
AlexKM2020
Сон Веры Павловны, да, я так и делал, одной большой выборкой, но это не здорово, много лишнего, потому просто двумя процами придётся...

да почему одной большой, вам же говорят, что процедура может сделать несколько отдельных селектов, т.е. на выходе будет несколько отдельных резалтсетов и c#-приложение может их всех получить по отдельности
...
Рейтинг: 0 / 0
11.12.2019, 13:34
    #39901221
AlexKM2020
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
Коллеги, спасибо за варианты!!!
Всё по делу!
...
Рейтинг: 0 / 0
11.12.2019, 18:52
    #39901425
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
AlexKM2020,

используйте функцию для получения данных, а не процедуру. В результате получите: известный набор возвращаемых атрибутов, возможность фильтра, сортировки, группировки, объединения результата с другими запросами. И еще много чего ещё.
...
Рейтинг: 0 / 0
11.12.2019, 23:43
    #39901566
Mind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возможно ли возвращение табличной переменной из процедуры
Владислав Колосов
AlexKM2020,

используйте функцию для получения данных, а не процедуру. В результате получите: известный набор возвращаемых атрибутов, возможность фильтра, сортировки, группировки, объединения результата с другими запросами. И еще много чего ещё.
В C#??
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Возможно ли возвращение табличной переменной из процедуры / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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