0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 10
|
||||||
1 | ||||||
Выходной параметр хранимой процедуры25.01.2010, 19:23. Показов 12514. Ответов 12
Метки нет (Все метки)
Здравствуйте, уважаемое сообщество!
Мне необходимо выполнить хранимую процедуру и в качестве одного из выходных параметров сформировать многострочное сообщение о результатах работы. Я делаю его varchar и формирую но как увидеть его в приложении после выполнения хранимой процедуры. Сделать что-то типа
0
|
25.01.2010, 19:23 | |
Ответы с готовыми решениями:
12
Вызов хранимой процедуры, возрвщающей параметр Вызов хранимой процедуры Создание хранимой процедуры Вызов хранимой процедуры |
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
26.01.2010, 09:50 | 2 |
Вы указали в параметре, что это output переменная?
0
|
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
|
|
26.01.2010, 09:59 | 3 |
Roman83, посмотрите повнимательнее про выходные параметры output и return - это две разные вещи.
0
|
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 10
|
|
26.01.2010, 11:46 [ТС] | 4 |
На сколько я понимаю процедура может вернуть значение return-ом, но только целое число, процедуру не заставить вернуть varchar, естественно я указываю, что параметр output, я без проблем получаю на вызывающей стороне output параметры типа int, но тип varchar пока получить не могу, первое ощущение таково, что в коде на C# я немогу преобразовать возвращаемое значение varchar в что-нибудь, мне подходящее, например в string.
0
|
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
|
|||||||||||
26.01.2010, 11:58 | 5 | ||||||||||
Во-первых, процедура может вернуть любой тип
Во-вторых, в C# можно так же получить любой тип output
P.S. Не пойму откуда вы такие предположения взяли...
0
|
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 10
|
||||||
26.01.2010, 13:10 [ТС] | 6 | |||||
Ваша процедура сработает и вернет 0
Я пробую выполнить процедуру
Сообщение 245, уровень 16, состояние 1, процедура e, строка 12 Ошибка преобразования значения varchar "Возврат" в тип данных int. Для int я могу указать SqlDbType.Int (а могу и не указать, он сам потом приведет), а что для varchar указать пока не соображу или мне вообще не varchar нужен
0
|
Комбайнёр
1606 / 704 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
|
|
26.01.2010, 13:22 | 7 |
если Вы возвращаете return-ом, то в переменную смотерть не нужно
0
|
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
|
|
26.01.2010, 13:27 | 8 |
0
|
213 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
|
||||||
26.01.2010, 13:44 | 9 | |||||
0
|
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
|
|
26.01.2010, 13:47 | 10 |
Roman83, извиняюсь, я попутал чуток.
"Оператор RETURN в СУБД MS SQL возвращает значение целочисленной переменной и прекращает выполнение." Т.е. никакие varchar-ы тут не покатят... Так что varchar возвращайте через OUTPUT - вот там все можно...
0
|
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 10
|
|
26.01.2010, 14:25 [ТС] | 11 |
Да я изначально не хотел указывать типы через SqlDBType, для общности, просто для некоторых параметров можно сделать типа Convert.ToInt32(выходной параметр) не указывая при этом что он там какой-то DBType.Int32, а для varchar не могу, ну да ладно укажу DBType
0
|
0 / 0 / 0
Регистрация: 16.01.2010
Сообщений: 10
|
|
26.01.2010, 21:06 [ТС] | 13 |
Да борода получилась, я ж в t-sql совсем чайник. Я привык что varchar - переменной длинны (вроде как с \0 на конце) и размер никогда ей не указывал, если надо только максимально допустимый, вот и сейчас даю varchar - а она мне строку из одного символа, надо размер. Благодарю всех за помощь и потраченные нервы, за DeriveParameters спасибо.
0
|
26.01.2010, 21:06 | |
26.01.2010, 21:06 | |
Помогаю со студенческими работами здесь
13
Вызов хранимой процедуры в с# Создание хранимой процедуры в C# Вызов хранимой процедуры Отчет из хранимой процедуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |