VI. Truy xuất cơ sở dữ liệu trong Active Server Page
3. Đối tượng Recordset.
Bằng cách sử dụng đối tượng Connection ta có thể thực thi các query
để thêm (add), cập nhật (update), hay xóa (delete) một record trong data source. Tuy nhiên trong các ứng dụng thì ta cũng phải thực hiện việc lấy ra các Record từ ADO, để hiển thị giá trị chúng trong trang web. Để lấy lại kết quả trả về từ các Query, chúng ta phải sử dụng đối tượng RecordSet, thực chất nó được hiểu như một bảng trong bộ nhớ, và nó cung cấp cho ta các phương thức (method), thuộc tính (properties) để dễ dàng truy xuất các Record trong nó.
Các method
AddNew: Là phương thức dùng để tạo ra một record trong Update Recordset.
Close:đóng lại đối tượng Recordset và các đối tượng con của nó.
Delete: Xóa đi record hiện hành trong Recordset.
Move: Dịch chuyển vị trí Record hiện tại.
- MoveFirst
- MoveNext Các phương thức dịch chuyển con trỏ
- MovePrevious - MoveLast
Open : Mở một record mới, sau khi mở xong thì con trỏ nằm ở
Record đầu tiên trong recordset. Các Properties
AbsolutePosition : Số thứ tự của Record hiện tại.
BOF (Begin Of File): Có giá trị True nếu vị trí con trỏ nằm ở record
đầu tiên. CursorType : Kiểu con trỏ được sử dụng trong RecordSet.
EOF (End Of File): Có giá trị True nếu vị trí con trỏ nằm ở record cuối cùng trong Recordset.
RecordCount: Trả về số record trong Recordset. a. Tạo Recordset
Để có được một biến Recordset ta sử dụng phát biểu tạo instance cho nó như sau:
Recordset_name = Server.CreateObject (“ADODB.Recordset”).
Sau khi đã có biến recordset rồi ta có thể khởi tạo giá trị cho nó bằng cách lưu kết quả trả về, mỗi khi thi hành các phương thức Execute của đối tượng Connection ví dụ như :
Recordset_name=ConnetionObject.Execute(CommandText, Recordaffected, option)
Đồ Aùn Tốt Nghiệp GVHD: ThS Nguyễn Đình Thuân
SVTH: Huỳnh Thanh Tú - Trang 32 - Lớp 40TH
Ta cũng có thể tạo một recordset bằng cách sử dụng phương thức Open theo cú pháp sau:
Recordset_name.Open (Source, ActiveConnection, CursorType, LockType, Option). LockType, Option).
Trong đó:
Source là Command Object, hay một lệnh SQL, hoặc là một Stored procedure.
ActiveConnection là tên của Connection đã được mở kết nối với cơ
sở dữ liệu cần làm việc.
CursorType là kiểu của con trỏ sử dụng khi mở Recordset, thông số
này có kiểu số, và được đặt bằng các tên hằng tương ứng như :
AdOpenForwardOnly = 0 là giá trị mặc định, khi chọn thông số này thì Record được mở ra chỉđể cho phép ta duyệt các record trong nó theo một chiều từ đầu đến cuối, tùy chọn này cũng không cho phép ta cập nhật hay xóa bỏ các record trong đó.
AdOpenKeyset = 1 Khi mở recordset ở chế độ này, recordset được mở
có khả năng cho phép ta cập nhật các record, tuy nhiên nó ngăn cản sự truy xuất tới một record mà User khác thêm vào Recordset.
AdOpenKeyset = 2 Chế độ này cho phép tất cả các thao tác như thêm vào, loại bỏ, sửa đổi record trong recordset. Cho phép thấy được sự thay đổi
đó trên record do user khác thực hiện. Ở chế độ này cho phép người sử dụng duyệt theo tất cả các chiều (lên xuống) trong recordset.
AdOpenStatic= 3 Gần giống như chế độ OpenForwardOnly.
LockType là kiểu Locking sử dụng khi mở Recordset. Bao gồm các giá trị sau:
AdLockReadOnly = 1 ta không thể thay đổi dữ liệu khi mở bằng chế độ khóa này.
AdLockpessimistic = 2 cho phép thay đổi dữ liệu trên record, sự thay
đổi này sẽ có tác dụng tức thời ngay trên data source.
AdLockOpetimistic = 3 sẽ khóa record mỗi khi ta update.
AdLockBatchOptimistic = 4 Thực hiện việc cập nhật theo bó (Batch update).
b. Đóng Recordset
Sau khi sử dụng xong một Recordset, hay trước khi mở lại ta phải thực hiện việc đóng recordset lại bằng phương thức Close với cú pháp:
Recordset_name.Close()