Cursor Là Gì

  -  
*

Nếu giải thích một biện pháp nlắp gọn gàng thì cursor tương tự như như recordphối hay dataphối trong programming. Nghĩa là ta select một số trong những data vào memory tiếp nối hoàn toàn có thể theo thứ tự thao tác làm việc với từng record bằng phương pháp Move Next…

Có 3 các loại cursors là Transact- SQL Cursors, API Cursors với Client Cursors. Trong số đó Transact-SQL và API ở trong một số loại Server Cursors tức là cursors được load lên với thao tác mặt phía server. Trong kích thước bài học kinh nghiệm này ta chỉ phân tích Transact-Squốc lộ cursors.

Bạn đang xem: Cursor là gì

Đang xem: Cursor là gì

Transact-Squốc lộ cursors được tạo nên bên trên hệ thống bằng các câu lệnh Transact-Squốc lộ và chủ yếu được dùng trong stored procedures với triggers. Trước không còn hãy coi qua 1 ví dụ về cursor:

DECLARE au_fname varchar(20) DECLARE Employee_Cursor CURSOR FOR SELECT LastName, FirstName FROM Northwind.dbo.Employees OPEN Employee_Cursor FETCH NEXT FROM Employee_Cursor INTO au_fname END CLOSE Employee_Cursor DEALLOCATE Employee_Cursor Trong ví dụ ở trên ta vẫn select LastName với FirstName từ Employees table của Northwind database cùng load vào Employee_Cursor tiếp nối theo thứ tự in tên của những employee ra màn hình hiển thị. Ðể thao tác làm việc với cùng một cursor ta phải theo công việc sau:

1. Dùng câu lệnh DECLARE CURSOR để knhì báo một cursor. khi khai báo ta cũng nên cho thấy thêm câu lệnh SELECTsẽ được tiến hành để đưa data.

2. Dùng câu lệnh OPEN để đưa data lên memory (populate data). Ðây đó là thời gian triển khai câu lệnh SELECT vốn được knhị báo sinh sống bên trên.

3. Dùng câu lệnh FETCH để mang từng mặt hàng data trường đoản cú record mix. Cụ thể là ta nên Hotline câu lệnh FETCH các lần. FETCH tựa như như lệnh Move trong ADO recordphối tại phần nó hoàn toàn có thể di chuyển tới lui bởi câu lệnh FETCH FIRST, FETCH NEXT, FETCH PRIOR, FETCH LAST, FETCH ABSOLUTE n, FETCH RELATIVE n cơ mà khác tại phần là nó mang data cho vào vào variable (FETCH…FROM…INTO variable_name). Đôi khi ta FETCH data trước kế tiếp loop cho tới record cuối của Cursor bởi vòng lặp WHILE bằng cách khám nghiệm global variable FETCH_STATUS (=0 nghĩa là thành công).

Xem thêm: Game Lắp Ráp Robot Rồng Băng Chơi, Game Lắp Ráp Rồng Băng

4. khi ta viếng thăm từng record ta hoàn toàn có thể UPDATE hay DELETE phụ thuộc vào nhu cầu (vào ví dụ này chỉ cần sử dụng lệnh PRINT)

5. Dùng câu lệnh CLOSE nhằm đóng cursor. Một số tài ngulặng (memory resource) sẽ được giải phóng nhưng mà cursor vẫn còn đó được knhị báo cùng rất có thể OPEN quay trở về.

6. Dùng câu lệnh DEALLOCATE nhằm phóng thích trọn vẹn các tài ngulặng giành riêng cho cursor (kể cả tên của cursor).

Xem thêm: Tải Ảnh 7 Viên Ngọc Rồng Siêu Cấp, I Hình Nền 7 Viên Ngọc Rồng Đẹp Nhất Miễn Phí

Lưu ý là trong ví dụ sinh sống bên trên trước khi sử dụng Cursor ta cũng declare một số trong những variable (au_lname) nhằm cất những cực hiếm rước được trường đoản cú cursor. Bạn rất có thể sử dụng Query Analyzer nhằm chạy test ví dụ trên.