Вызвать процедуру SQLCLR из другой хранимой процедуры и получить 2 возвращаемых значения?

Я использую хранимую процедуру, которая вызывает другую хранимую процедуру SQLCLR. Процедура SQLCLR возвращает 2 значения.

Как получить 2 возвращаемых значения из процедуры SQLCLR в хранимую процедуру T-SQL?

Обычно я знаю, что С# получает возвращаемое значение с использованием выходного параметра. Но сбивает с толку, как получить и удерживать возвращаемое значение в обычной хранимой процедуре.


person Pravin    schedule 02.06.2012    source источник
comment
Вы хотите сказать, что мне нужно объявить два выходных параметра в хранимой процедуре БД. Но я не могу объявить выходной параметр.   -  person Pravin    schedule 02.06.2012


Ответы (2)


Процедура SQLCLR:

public static void SendMailSP(out string Status, out string Message)
{
    Status = "hi:";
    Message = "Hello";
}

Процедура БД

CREATE PROCEDURE [dbo].udpTestOutParameter
{
DECLARE @Status varchar(100);
DECLARE @Message varchar(100);
EXECUTE dbo.SendMailSP @Status = @Status OUTPUT,@Message = @Message OUTPUT;
PRINT @Status
PRINT @Message
RETURN
}

Я получаю должный результат. Спасибо за сообщение.

person Pravin    schedule 02.06.2012

Может быть более «правильный» ответ, чем этот, но один простой способ - просто поместить два значения в одно и разделить их каким-либо символом, таким как запятая, табуляция, вертикальная черта и т. д. Таким образом, вы просто возвращаете один значение, и вы можете разделить его на другом конце обратно на 2 значения на основе разделителя.

person Brandon Moore    schedule 02.06.2012
comment
Да, я знаю этот метод, но я хотел знать, могу ли я получить 2 возвращаемых значения из хранимой процедуры, выполняющей другую процедуру. Я получил ответ. Спасибо за помощь - person Pravin; 02.06.2012