Udostępnij za pośrednictwem


Jak Wykonanie procedury przechowywanej (przy użyciu składni RPC) i proces zwracane kody i parametrów wyjściowych (OLE DB)

Procedury przechowywane programu SQL Server może mieć całkowitą zwracają kodów i parametrów wyjściowych.Kody zwrotne i parametry wyjściowe są wysyłane w ostatnim pakiet z serwera i są zatem niedostępne do aplikacji aż do zestawu zestaw wierszy jest całkowicie zwolnione.Jeśli polecenie zwraca wiele wyniki, dane wyjściowe parametr jest dostępne, gdy IMultipleResults::GetResult zwraca DB_S_NORESULT, lub gdy IMultipleResults interfejs jest całkowicie zwolnione, cokolwiek nastąpi najpierw.

Kody zwrotne procesu i parametrów wyjściowych

  1. Konstruowanie instrukcja języka SQL , używa sekwencji unikowej RPC.

  2. Wywołanie ICommandWithParameters::SetParameterInfo metoda, aby opisać parametry dostawca.Wypełnij informacje na temat parametrów w tablicy PARAMBINDINFO struktur.

  3. Tworzenie zestaw powiązania (jeden dla każdego parametru maker) za pomocą tablicy struktur DBBINDING.

  4. Create an accessor for the defined parameters by using the IAccessor::CreateAccessor method.CreateAccessor creates an accessor from a set of bindings.

  5. Wypełnij struktury DBPARAMS.

  6. Wywołanie Execute (w tym przypadek wywołanie procedura składowana).

  7. Przetwarzanie zestawu zestaw wierszy, a następnie zwolnij go za pomocą IRowset::Release metoda.

  8. Przetwarzać kod zwrotny i wartości parametrów wyjściowych otrzymanych od procedura składowana.

Przykład

W przykładzie przetwarzania zestawu zestaw wierszy, kod zwrotny i parametru wyjściowego.Zbiory nie są przetwarzane.Oto próbki procedura składowana używany przez aplikację.

USE AdventureWorks2008R2;
GO
DROP PROCEDURE myProc;
GO

CREATE PROCEDURE myProc 
    @inparam int,
    @outparam int OUTPUT

AS
SELECT Color, ListPrice 
FROM Production.Product WHERE Size > @inparam;
SELECT @outparam = 100

IF  (@outparam > 0)
    RETURN 999
ELSE
    RETURN 888;
GO

Zakończenie przykładowy kod znajduje się w pliku InitializeAndEstablishConnection_B.cpp.Można pobrać archiwum zawierające próbki z Pobierania programu SQL Server strona w witrynie MSDN.

Próbka ta została opracowana przy użyciu programu Microsoft Visual C++ 2005.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.Jeśli uwierzytelnianie systemu Windows nie jest dostępne, Monituj użytkownikom wprowadzanie poświadczeń przy uruchomieniu czas.Unikaj przechowywania poświadczenia w pliku.Jeśli poświadczenia muszą zostać zachowane, należy zaszyfrować je z Funkcji Crypto API Win32.