CURSOR NEDİR ?
Veri tabanı nesneleri içinde; kayıtlar arasında , satır bazlı hareket etmemizi sağlayan mekanizmadır.
- Bu sayede , istediğimiz bir satıra hareket ederek sonucunu alabiliriz.
- Aktif kaydı tespit edebiliriz.
- Aktif kayıtta değişiklik yapabiliriz.
- Script , Stored Prodecure ve Trigger yapılarında kullanabiliriz.
- Transact- SQL ifadeleri ile bir Cursor oluşturabileceğimiz gibi Database API fonksıyonlarını da kullanabiliriz.Bu Database API fonksiyonları olarak ADO , OLEDB ve ODBC yapılarını tercih edebiliriz.
FETCH ve DİĞER ÖZELLİKLER:
Satır hareketlerini yöneten , bir Cursor ifadesidir.
-Fetch First : İlk satıra gider.
-Fetch Next : Bir sonraki satıra gider.
-Fetch Prior : Bir önceki kayıda gider.
-Fetch Last : Bir sonraki kayıda gider.
-Fecth ABSOLUTE n: Burada “n” olarak ifade edilen sayılsal bir değerdir ve kaç kayıt gidileceğini belirler.ABSOLUTE ifadesi;bu kayıt hareketlerinin her zaman ilk kayıttan başlamasını sağlar.
Fetch RELATIVE n : Yukarıdaki ifadeden farklı olarak,kayıt ilerleme miktarını o an bulunan kayıda göre yapar.
Ayrıca Cursor içinde kullanılan Forward-Only ifadesi ile sadece ileri gitme işlemi gerçekleştirilir.Bu yapıda salt Fetch Next çalışır.Eğer tüm Fetch özelliklerini kullanmak istersek ; Scrollable yapısını tercih etmemiz gerekir.Bu,tüm Fetch seçeneklerini destekler.(Sadece Dynamic Cursor ile beraber Fetch Absolute kullanımına destek vermez.)
Bir Cursor OPEN ifadesi ile açılırken , CLOSE ifadesi ile de kapanır.
Örnekler;
GO
DECLARE (Tablo adı) CURSOR FOR
SELECT (Alanlar)
FROM (Tablo adı)
ORDER BY AGE ASC
OPEN (Tablo adı)
FETCH NEXT FROM (Tablo adı)
WHILE @@FETCH_STATUS=0
BEGIN
FETCH NEXT FROM (Tablo adı)
END
CLOSE (Tablo adı)
DEALLOCATE (Tablo adı)