Udostępnij za pośrednictwem


Jak wykonać procedura przechowywana (przy użyciu składni RPC) i Zwróć kody procesu oraz parametry wyjściowe (OLE DB)

Procedury przechowywane programu SQL Server może być liczbą całkowitą, zwraca kodów i wyjścia parametrów.Zwracane kody i parametry wyjściowe są wysyłane w ostatnim pakiecie z serwera, a w związku z tym nie są dostępne dla aplikacji aż do chwili całkowicie zwolnienia zestawu zestaw wierszy.Jeśli to polecenie zwraca wiele wyniki, dane wyjściowe parametr jest dostępny kiedy IMultipleResults::GetResult Zwraca DB_S_NORESULT, lub gdy IMultipleResults Interfejs jest całkowicie zwolnione, zależności od tego, co nastąpi najpierw.

Proces zwracane kody i parametrów wyjściowych

  1. Utworzyć instrukcję SQL, która używa sekwencji unikowej RPC.

  2. Wywołanie ICommandWithParameters::SetParameterInfo Metoda opisać parametry do dostawca. Wprowadź informacje o parametrach w tablicy PARAMBINDINFO struktur.

  3. Tworzenie zestaw powiązań (po jednym dla każdego producenta parametr) za pomocą tablicy DBBINDING struktur.

  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 polecenie (w tym przypadek wywołanie procedura przechowywana).

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

  8. Proces zwracane kody i wartości parametrów wyjściowych otrzymanych od procedura przechowywana.

Example

W przykładzie pokazano, przetwarzanie zestawu zestaw wierszy, zwracane kody i parametru wyjściowego.Zestaw wyników nie są przetwarzane.Poniżej przedstawiono procedura przechowywana próbki używane przez aplikację.

USE AdventureWorks
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żesz pobrać próbką z archiwum Pliki do pobrania program SQL Server strona w witrynie MSDN.

W tym przykładzie został opracowany przy użyciu programu Microsoft Visual C++ 2005.

Security noteSecurity Note:

Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.Jeśli uwierzytelnianie systemu Windows nie jest dostępne, monitu użytkowników o wprowadzenie poświadczenia w czasie wykonywania.Należy unikać przechowywania poświadczenia w pliku.Jeśli muszą przetrwać poświadczenia, należy je z zaszyfrować Win32 API usług kryptograficznych.