Udostępnij za pośrednictwem


Using the cursor Data Type in an OUTPUT Parameter

Transact-SQL procedury przechowywane mogą używać cursor Typ danych tylko dla parametrów OUTPUT. Jeśli cursor Typ danych jest określony dla parametru, są wymagane parametry VARYING i wyjście. Jeśli słowo kluczowe VARYING został określony dla parametru, musi być typu danych cursor i muszą być określone słowo kluczowe OUTPUT.

Uwaga

The cursor data type cannot be bound to application variables through the database APIs such as OLE DB, ODBC, ADO, and DB-Library.Ponieważ wyjście parametry muszą być powiązane przed aplikacji można wykonać procedura przechowywana, przechowywane procedury cursor Parametry wyjście nie może być wywołana z interfejsów API bazy danych. Procedury te mogą być wywoływane z Transact-SQL partii, procedury przechowywane lub wyzwala tylko wtedy, gdy cursor Wyjście zmienna jest przypisana do Transact-SQL lokalne cursor Zmienna.

Parametry wyjściowe kursor

Następujące zasady dotyczą cursor Po wykonaniu tej procedury, dane wyjściowe parametrów:

  • kursor progresywny wierszy zwracanych zestaw wyników się kursor są tylko wiersze na i poza pozycji kursora po zakończeniu procedura przechowywana, wykonywane, na przykład:

    • Kursor nonscrollable zostanie otwarty w procedurze zestaw wyników o nazwie RS 100 wierszy.

    • Procedura pobiera pierwszych 5 wierszy wyniku zestaw RS.

    • Procedura przywraca jej wywołującego.

    • Zestaw wyników zwróconych wywołującemu RS składa się z wierszy od 6 do 100, RS i jeśli kursor znajduje się w obiekt wywołujący jest umieszczony przed pierwszym wierszem RS.

  • Kursora kursor progresywny jest umieszczony przed pierwszym wierszem po zakończeniu procedura przechowywana zestaw wyników całego są zwracane do wywoływania partia, procedura przechowywana lub wyzwalacza.Jeśli zwrot pozycji kursor jest zestaw przed pierwszym wierszem.

  • kursor progresywny Jeśli kursor znajduje się poza koniec ostatniego wiersza po zakończeniu procedura przechowywana, zestaw wyników puste są zwracane do wywoływania partia, procedura przechowywana lub wyzwalacza.

    Uwaga

    zestaw wyników puste nie jest taka sama jak wartość null.

  • Przewijalne kursor zwracane są wszystkie wiersze zestaw wyników wywołującego partia, procedura przechowywana lub wyzwalacza po zakończeniu wykonywania procedury przechowywanej.Jeśli zwrot pozycji kursor pozostaje w pozycji ostatniego pobranie, wykonane w procedurze.

  • Dla dowolnego typu kursora Jeśli kursor zostanie zamknięty, następnie wartość null jest przekazywany do wywołania partia, procedura przechowywana lub wyzwalacza.To będzie także przypadek jeśli kursor jest przypisany do parametru, jednak, że kursor nie jest otwarty.

    Uwaga

    W stanie zamkniętym sprawach tylko w czasie zwrotu.Na przykład jest prawidłowe, Zamknij część kursor ze sposobu, w procedurze, otwórz go ponownie w procedurze, a następnie powrócić, że zestaw wyników przez kursor do wywoływania partia, procedura przechowywana lub wyzwalacza.

Przykład

W poniższym przykładzie procedura przechowywana jest tworzona, określony jako parametr wyjściowy @currency\_cursor za pomocą cursor Typ danych. Procedura przechowywana jest następnie wywoływana w serii

Najpierw należy utworzyć procedury, która deklaruje, a następnie otworzy kursor w tabela Waluta.

Następnie należy wykonać partia, który deklaruje zmienną kursora lokalnego, wykonuje procedurę przypisywania kursor do zmiennej lokalnej, a następnie pobiera wierszy z kursora.