BD-1st-2.4-lab12.tresc-1.1-Slajd11

Z Studia Informatyczne
Wersja z dnia 08:48, 10 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Atrybuty kursora (2)

Atrybuty kursora (2)


Przykład zaprezentowany na bieżącym slajdzie pokazuje sposób wykorzystania atrybutów kursora.

W przykładzie zadeklarowano kursor cur_zespoly i zmienną rekordową v_zespol. Na początku programu sprawdzamy, czy kursor nie został już otwarty, odczytując wartość atrybutu %ISOPEN. Jeśli wartość atrybutu to FALSE, otwieramy kursor poleceniem OPEN.

Następnie rozpoczynamy pętlę LOOP, w której będziemy po kolei pobierać rekordy z kursora. Pierwsze polecenie wewnątrz pętli pobiera rekord z kursora i umieszcza wartości atrybutów rekordu w zmiennej rekordowej v_zespol. Dalej sprawdzany jest warunek wyjścia z pętli. Kończymy pętlę w momencie, gdy wartość atrybutu %NOTFOUND kursora jest równa TRUE, czyli wtedy, gdy wcześniejsze polecenie FETCH nie odczytało żadnego rekordu (czyli albo kursor nie odczytał żadnych rekordów z bazy danych albo wskaźnik bieżącego rekordu znajduje się poza ostatnim rekordem ze zbioru, czyli zostały odczytane już wszystkie rekordy kursora). Jeśli atrybut %NOTFOUND ma wartość FALSE, wówczas kontynuujemy pętlę, wypisując na konsoli liczbę pobranych dotąd rekordów z kursora (wartość atrybutu %ROWCOUNT, która tutaj jest wykorzystywana jako liczba porządkowa kolejnych rekordów) i nazwę zespołu z bieżącego rekordu kursora.

Po zakończeniu pętli kursor zostaje zamknięty poleceniem CLOSE

Zaprezentowany przykład pokazuje typową konstrukcję pętli LOOP z kursorem.


<< Poprzedni slajd | Spis treści | Następny slajd >>