Bước 1: Khai báo những biến để lưu trữ giá trị cột từ phát biểu SELECT

Một phần của tài liệu Mastering C# Database Programming pot (Trang 87)

SELECT

Những biến này phải thích hợp với những kiểu cột của những hàng được truy xuất. Chẳng hạn, bạn sẽ muốn sử

dụng một biến int để lưu trữ giá trị từ một cột int , vân vân.

Ví dụ sau đây khai báo ba biến để lưu trữ những cột ProductID, ProductName, và UnitPrice từ bảng Products:

DECLARE @MyProductID int

DECLARE @MyProductName nvarchar(40) DECLARE @MyUnitPrice money

DECLARE @MyProductName nvarchar(40) DECLARE @MyUnitPrice money Phát biểu SELECT này không thật sựđược chạy cho đến khi bạn mở con trỏ (cursor). Bạn khai báo con trỏ của bạn sử dụng phát biểu DECLARE .

Ví dụ sau đây khai báo một con trỏ có tên ProductCursor với một phát biểu SELECT mà truy xuất những cột ProductID, ProductName, và UnitPrice cho 10 sản phẩm đầu tiên từ bảng Products:

DECLARE ProductCursor CURSOR FOR SELECT ProductID, ProductName, UnitPrice FROM Products

WHERE ProductID <= 10

Bước 3: M con tr (Cursor)

Bây là lúc mở con trỏ của bạn, nó chạy phát biểu SELECT được định nghĩa trước đó trong phát biểu

DECLARE . Bạn mở một con trỏ sử dụng phát biểu OPEN. Ví dụ sau đây mở ProductCursor, và do đó cũng chạy phát biểu SELECT để truy xuất những hàng từ bảng Products:

OPEN ProductCursor

Bước 4: Ti v nhng hàng t Con tr

Bây giờ bạn phải đọc mỗi hàng từ con trỏ của bạn. Để làm điều này, bạn sự sử dụng phát biểu FETCH . Con trỏ

của bạn có thể chứa nhiều hàng, và do đó một vòng lặp "WHILE" được đòi hỏi đểđọc lần lượt mỗi hàng. Để

xác định khi vòng lặp kết thúc, bạn có thể sử dụng hàm @@FETCH_STATUS. Hàm này trả lại một trong số

những giá trị có thể xảy ra được trình bày trong Bảng 4.1. Bảng 4.1: những giá trị trả về từ hàm @@FETCH_STATUS

Giá trị Mô tả

0 Phát biểu FETCH trả về một hàng một cách thành công .

-1 Phát biểu FETCH bị hỏng hay hàng yêu cầu bên ngoài tập hợp kết quả trả về.

-2 Hàng được tải về không hiện hữu.

Ví dụ sau đây trình bày một vòng lặp đọc từng hàng đến từ ProductCursor:

FETCH NEXT FROM ProductCursor

INTO @MyProductID, @MyProductname, @MyUnitPrice

PRINT '@MyProductID = ' + CONVERT(nvarchar, @MyProductID) PRINT '@MyProductName = ' + CONVERT(nvarchar, @MyProductName) PRINT '@MyUnitPrice = ' + CONVERT(nvarchar, @MyUnitPrice)

Một phần của tài liệu Mastering C# Database Programming pot (Trang 87)

Tải bản đầy đủ (PDF)

(151 trang)