Corsurler


CURSORS
İlişkisel tablolar oluşturup bu tabloların sonucunda oluşan satırlar üzerinde hareket etme işlemleri için Cursorler kullanılır. Cursorlar, oluşturulan sonuç tablolarındaki üzerindeki satırlar üzerinde ileri, geri, en son, en ilk kayıtlara ilerleyebilmenizi sağlar. Cursorlar ile şu işlemler yapılır;
· Arama işlemi yapmak. Sonuç tablosu üzerinde belli bir satıra gitmek.
· Sonuç tablosu üzerinden hareket etmek. Örneğin belli bir şarta göre yapılan armaya uyan birden fazla satırın olması durumunda şarta uyan satırlar arasında dolaşmak.
· Belli bir satırdaki bilgileri değiştirmek.
· Stored Procedure’ler, Trigger ve script içindeki Transact SQL deyimleri üzerinde veri değişikliği yapılmasını sağlamak.
Microsoft SQL Server Cursor kullanımında iki ayrı yöntemi de destekler. Bu yöntemler;
1- Transact SQL.
2- API Cursor fonksiyonu ile desteklenen Cursorler. Microsoft’un Database API’lerini kullanarak Visual C++, Visual Basic, Visual Fox Pro gibi programlarla erişebilirsiniz. Bu API’ler;
· ADO (ActiveX Data Object)
· OLE DB
· ODBC (Open Database Connectivity)
· DB-Library’ dir
Transact SQL Cursorleri DECLARE CURSOR deyimi ile tanımlanır. API Server Cursorleri ise OLE DB, ODBC, Db-Library içinde tanımlanan cursorlerdir. Client Cursorleri ise SQL Server ODBC sürücüsü ve DB-Library içinde gerçekleştirilir. Server Cursorleri kullanmak Client Cursor kullanmaya göre daha avantajlıdır.
DECLARE Ogrenci_Cursor CURSOR
FOR SELECT * FROM Ogrenci
OPEN Ogrenci_Cursor
FETCH NEXT FROM Ogrenci_Cursor
Yukarıda Ogrenci_Cursor isminde bir Cursor tanımlanmış ve Ogrenci tablosunun tüm satırları bu sonuç setinde toplanmıştır. FETCH kelime anlamı olarak “gidip getirmek” anlamına gelmektedir. Burada da yapılan işlem ile verilerin alınması FETCH NEXT ile yapılmaktadır. Diğer bir yöntemde SCROLL seçenekleridir. Detaylı bilgi için SQL Server Online Books’a göz atabilirsiniz.