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
Konstruowanie instrukcja języka SQL , używa sekwencji unikowej RPC.
Wywołanie ICommandWithParameters::SetParameterInfo metoda, aby opisać parametry dostawca.Wypełnij informacje na temat parametrów w tablicy PARAMBINDINFO struktur.
Tworzenie zestaw powiązania (jeden dla każdego parametru maker) za pomocą tablicy struktur DBBINDING.
Create an accessor for the defined parameters by using the IAccessor::CreateAccessor method.CreateAccessor creates an accessor from a set of bindings.
Wypełnij struktury DBPARAMS.
Wywołanie Execute (w tym przypadek wywołanie procedura składowana).
Przetwarzanie zestawu zestaw wierszy, a następnie zwolnij go za pomocą IRowset::Release metoda.
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ń |
---|
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. |