Respond needs javascript to run. To find out more click here
Cursor Nedir? Sql Cursor-T-sql » FETCH, Cursor, Store, Relative, Sonraki, Procedure » Serdar Demir Uefa Maçları Canlı İzle
RSS
 

Cursor Nedir? Sql Cursor-T-sql

23 Eki

Cursor Nedir?

Veritabanı nesneleri içerisinde; kayıtlar arasında, satır bazlı hareket etmemizi sağlayan yapıdır.

1-) Cursor sayesinde istediğimiz satıra hareket ederek sonucunu alabiliriz.

2-) Aktif kayıt tespit edilir.

3-)Bu yapıda trigger,store procedure ve script kullanılabilir

** cursoru t-sql kodlarıyla oluşturabiliriz yada database apilerini kullanaral oluşturabiliriz.Database api fonksiyonları ADO,OLEDB ve ODBC yapılarıdır.

FETCH VE Diğer Özellikler;

Fetch cursor hareketlerini yönetir

Fetch First: ilk satıra gider.

Fetch next: Sonraki satır.

Fetch last: bir sonraki kayıta gider.

Fetch absolute n  olarak ifade ettiğimizde ise kaç kayıt gidileceğini belirtir.

Fetch Relative n olarak ifade ettiğimizde ise kayıt ilerleme miktarını o an bulunan kayıta göre yapar.

Bir cursor ifadesi open ile açılır close ifadesi ile kapanır.

Şimdi bir uygulama ile görelim;

declare film cursor for
select isim from bilgi
open film
fetch next from film
while @@fetch_status=0
begin
fetch next from film
end
close film
deallocate film

sorgu1

declare film cursor for

select isim from bilgi

open film

fetch next from film while @@fetch_status=0

begin

fetch next from film

end

close film

deallocate film bı kodu yazıp çalıştırdığımızda soldaki gibi sonuç çıkartacaktır.

Store Procedure İçerisinde Cursor Tanımlaması-Kullanımı;

Cursor tanımlamasını store procedure oluşturuken de yapabilirdik.Örneğin veritabanınızda işçilerin maaşlarını tutyorsunuz işçilere verdiğiniz maaşları ve toplam işçi sayısını store procedure içerisinde cursor tanımı yaparak kullanabilirsiniz. Store procedure içerisinde döngüler sorgular yazabiliyorduk cursor yardımı ile örneğin bir stok veritabanınız var ve ürün satılıyor elinizde ürün bittiginde o ürünü -tabloyu silmek ihtiyacı duyulabilir bu durmda

while(@@fetch_status<>-1) döngüsünü store procedure içerisinde diyerek kontrolü sağlamış oluruz.

(yorumlarda istek olursa örnek ekleyebilirim)

Trigger – Cursor Uygulamaları:Triggler ile konumuzda değinmiştik triggerlar teitkleyicidiler ve yazılımı karmaşıklıktan kurtarırlar. Bir store procedure ile satırlarca yazacağımız kodu trigger ile kolayca halledebiliriz.

Cursor uygulama: Şimdi müzik anketi yaptıgımız bir veritabanımız olsun ve her 3 kayıttan birini getirelim basit bir uygulama fakat önemli olan hız meselesi bu işlemi mümkün olduğu kadar hızlı yapmak için Fetch Relative  3 dememiz gerekir;

declare muzik scroll cursor for

select * from anket

open muzik

declare @say=1

while(@say<=3)

begin

fetch relative  3

set @say=@say+1

close muzik

deallocate muzik

 
 

Tags: , , , , , , , , , , , ,

Leave a Reply

 

 
  1. Araz

    02 Eylül 2010 at 00:53

    Teshekkurler

     
  2. neslihan

    22 Kasım 2010 at 08:08

    Herşey tamamdır. Ama pratiğe dökme konusunda ufak problemlerim mevcut.

     
  3. lale

    25 Kasım 2010 at 09:36

    teşekürler…

     
  4. lale

    25 Kasım 2010 at 09:36

    teşekürler….