Używam procedury przechowywanej, która wywołuje inną procedurę przechowywaną SQLCLR. Procedura SQLCLR zwraca 2 wartości.
Jak uzyskać 2 wartości zwracane z procedury SQLCLR do procedury składowanej T-SQL?
Wiem normalnie z C # uzyskanie wartości zwracanej przy użyciu parametru wyjściowego. Ale mylące, jak uzyskać i zachować wartość zwrotu w normalnej procedury przechowywanej.
Odpowiedzi:
3 dla odpowiedzi № 1Procedura SQLCLR:
public static void SendMailSP(out string Status, out string Message)
{
Status = "hi:";
Message = "Hello";
}
Procedura DB
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
}
Otrzymuję właściwy wynik. Dzięki za wpis.
1 dla odpowiedzi nr 2
Może być bardziej "poprawna" odpowiedź niż ta,ale jednym z łatwych sposobów jest po prostu umieszczenie dwóch wartości w jednym i oddzielenie ich jakimś znakiem, na przykład przecinkiem, tabulatorem, rurą itp. W ten sposób zwracasz tylko jedną wartość i możesz podzielić ją na drugi koniec z powrotem na 2 wartości oparte na ograniczniku.