*

Nếu giải thích một giải pháp nthêm gọn thì cursor tương tự như như recordset tuyệt datamix trong programming. Nghĩa là ta select một trong những data vào memory sau đó có thể theo lần lượt làm việc cùng với từng record bằng phương pháp Move Next…

Có 3 loại cursors là Transact- Squốc lộ Cursors, API Cursors cùng Client Cursors. Trong đó Transact-SQL với API trực thuộc các loại Server Cursors tức là cursors được load lên cùng thao tác làm việc mặt phía VPS. Trong khuôn khổ bài học này ta chỉ nghiên cứu Transact-SQL cursors.

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

Đang xem: Cursor là gì

Transact-Squốc lộ cursors được tạo ra trên hệ thống bằng các câu lệnh Transact-Squốc lộ cùng hầu hết được dùng trong stored procedures cùng triggers. Trước hết hãy coi sang 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ụ sinh hoạt trên ta đã select LastName và FirstName từ Employees table của Northwind database cùng load vào Employee_Cursor sau đó thứu tự in thương hiệu của những employee ra screen. Ðể thao tác làm việc với cùng một cursor ta bắt buộc theo công việc sau:

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

2. Dùng câu lệnh OPEN để lấy data lên memory (populate data). Ðây đó là thời gian thực hiện câu lệnh SELECT vốn được khai báo ngơi nghỉ bên trên.

3. Dùng câu lệnh FETCH để lấy từng sản phẩm data trường đoản cú record set. Cụ thể là ta đề nghị điện thoại tư vấn câu lệnh FETCH nhiều lần. FETCH tương tự như nlỗi lệnh Move sầu trong ADO recordmix tại đoạn nó rất có thể dịch chuyển cho tới lui bởi câu lệnh FETCH FIRST, FETCH NEXT, FETCH PRIOR, FETCH LAST, FETCH ABSOLUTE n, FETCH RELATIVE n tuy thế khác tại phần là nó mang data bỏ vô trong variable (FETCH…FROM…INTO variable_name). Thông thường ta FETCH data trước sau đó loop cho đến record cuối của Cursor bởi vòng lặp WHILE bằng cách soát sổ global variable FETCH_STATUS (=0 tức là thành công).

Xem thêm: Jetbrains Intellij Là Gì - Hướng Dẫn Cài Đặt Và Sử Dụng Intellij Idea Cơ Bản

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

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

6. Dùng câu lệnh DEALLOCATE để pchờ thích hợp trọn vẹn các tài nguyên ổn giành riêng cho cursor (của cả tên của cursor).

Lưu ý là vào ví dụ làm việc 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 giá trị đem được tự cursor. Bạn hoàn toàn có thể sử dụng Query Analyzer để chạy demo ví dụ trên.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *