Đối tượng Bản ghi tập của ADO

Mẫu

GetRows
Ví dụ minh họa cách sử dụng phương thức GetRows.

Đối tượng Recordset

Đối tượng Recordset ADO được sử dụng để chứa một tập hợp bản ghi từ bảng cơ sở dữ liệu. Một đối tượng Recordset được组成 từ các bản ghi và cột (trường).

Trong ADO, đối tượng này là quan trọng nhất và thường được sử dụng để thực hiện các thao tác dữ liệu cơ sở dữ liệu.

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

Khi bạn mở Recordset lần đầu tiên, con trỏ bản ghi hiện tại sẽ chỉ đến bản ghi đầu tiên, đồng thời các thuộc tính BOF và EOF là False. Nếu không có bản ghi, các thuộc tính BOF và EOF là True.

Đối tượng Recordset có thể hỗ trợ hai loại cập nhật:

  • Cập nhật ngay lập tức - Khi gọi phương thức Update, tất cả các thay đổi sẽ được ghi vào cơ sở dữ liệu ngay lập tức.
  • Cập nhật lô - Provider sẽ lưu trữ nhiều thay đổi, sau đó gửi chúng vào cơ sở dữ liệu bằng phương thức UpdateBatch.

Trong ADO, đã định nghĩa 4 loại con trỏ (điểm) khác nhau:

  • Con trỏ động - Cho phép bạn xem các thêm, thay đổi và xóa của người dùng khác
  • Con trỏ tập hợp khóa - Tương tự con trỏ động, nhưng bạn không thể xem các thêm của người dùng khác và nó sẽ ngăn bạn truy cập vào các bản ghi đã bị xóa bởi người dùng khác. Các thay đổi dữ liệu của người dùng khác vẫn visible.
  • Con trỏ tĩnh - cung cấp bản sao tĩnh của tập hợp dữ liệu, có thể được sử dụng để tìm kiếm dữ liệu hoặc tạo báo cáo. Ngoài ra, các thêm, thay đổi và xóa của người dùng khác sẽ không visible. Khi bạn mở một đối tượng Recordset khách hàng, đây là loại con trỏ duy nhất được phép.
  • Con trỏ chỉ di chuyển về trước - chỉ cho phép cuộn về trước trong Recordset. Ngoài ra, các thêm, thay đổi và xóa của người dùng khác sẽ không visible. Ngoài ra, con trỏ tĩnh - cung cấp bản sao tĩnh của tập hợp dữ liệu, có thể được sử dụng để tìm kiếm dữ liệu hoặc tạo báo cáo. Ngoài ra, các thêm, thay đổi và xóa của người dùng khác sẽ không visible. Khi bạn mở một đối tượng Recordset khách hàng, đây là loại con trỏ duy nhất được phép.

Có thể đặt loại con trỏ thông qua thuộc tính CursorType hoặc thông qua tham số CursorType trong phương thức Open.

Ghi chú:Không phải tất cả các nhà cung cấp (providers) hỗ trợ tất cả các phương thức và thuộc tính của đối tượng Recordset.

Thuộc tính

Thuộc tính Mô tả
AbsolutePage Đặt hoặc trả về giá trị có thể chỉ định trang của đối tượng Recordset.
AbsolutePosition Đặt hoặc trả về giá trị có thể chỉ định vị trí thứ tự (vị trí số) của bản ghi hiện tại trong đối tượng Recordset.
ActiveCommand Trả về đối tượng Command liên quan đến đối tượng Recordset.
ActiveConnection Nếu kết nối bị đóng, đặt hoặc trả về định nghĩa của kết nối, nếu kết nối mở, đặt hoặc trả về đối tượng Connection hiện tại.
BOF Nếu vị trí của bản ghi hiện tại trước bản ghi đầu tiên, trả về true, ngược lại trả về false.
Bookmark Đặt hoặc trả về một Bookmark. Bookmark này lưu trữ vị trí của bản ghi hiện tại.
CacheSize Đặt hoặc trả về số lượng bản ghi có thể được lưu trữ trong bộ nhớ cache.
CursorLocation Đặt hoặc trả về vị trí của dịch vụ con trỏ.
CursorType Đặt hoặc trả về loại con trỏ của đối tượng Recordset.
DataMember Đặt hoặc trả về tên của thành viên dữ liệu cần lấy từ đối tượng được tham chiếu bởi thuộc tính DataSource.
DataSource Chỉ định một đối tượng chứa dữ liệu cần được biểu diễn dưới dạng đối tượng Recordset.
EditMode Trả về trạng thái chỉnh sửa hiện tại của bản ghi.
EOF Nếu vị trí của bản ghi hiện tại sau bản ghi cuối cùng, trả về true, ngược lại trả về false.
Filter Trả về một bộ lọc cho dữ liệu của đối tượng Recordset.
Index Đặt hoặc trả về tên của chỉ mục hiện tại của đối tượng Recordset.
LockType Đặt hoặc trả về giá trị có thể chỉ định loại khóa khi chỉnh sửa một bản ghi trong Recordset.
MarshalOptions Đặt hoặc trả về một giá trị, giá trị này xác định những bản ghi nào được trả về máy chủ.
MaxRecords Đặt hoặc trả về số lượng bản ghi tối đa từ một truy vấn trả về đối tượng Recordset.
PageCount Trả về số lượng trang dữ liệu trong đối tượng Recordset.
PageSize Đặt hoặc trả về số lượng bản ghi tối đa được phép trên một trang của đối tượng Recordset.
RecordCount Trả về số lượng bản ghi trong đối tượng Recordset.
Sort Đặt hoặc trả về tên của một hoặc nhiều trường được sử dụng làm cơ sở sắp xếp Recordset.
Source Đặt một giá trị chuỗi, hoặc tham chiếu đối tượng Command, hoặc trả về một giá trị chuỗi chỉ ra nguồn dữ liệu của đối tượng Recordset.
State Trả về một giá trị mô tả Recordset đối tượng là mở, đóng, đang kết nối, đang thực hiện hoặc đang lấy dữ liệu.
Status Trả về trạng thái hiện tại của bản ghi trong việc cập nhật lô hoặc các thao tác lớn khác.
StayInSync Đặt hoặc trả về việc có thay đổi tham chiếu đến bản ghi con khi vị trí bản ghi cha thay đổi.

Phương pháp

Phương pháp Mô tả
AddNew Tạo một bản ghi mới.
Cancel Hủy bỏ một lệnh thực hiện.
CancelBatch Hủy bỏ một lệnh cập nhật lô.
CancelUpdate Hủy bỏ các thay đổi đã thực hiện trên một bản ghi của đối tượng Recordset.
Clone Tạo bản sao của Recordset đã có.
Close Đóng một Recordset.
CompareBookmarks So sánh hai Bookmark.
Delete Xóa một bản ghi hoặc một nhóm các bản ghi.
Find Tìm kiếm một bản ghi trong Recordset thỏa mãn một điều kiện cụ thể.
GetRows Chép nhiều bản ghi từ một đối tượng Recordset vào một mảng hai chiều.
GetString Trả về Recordset dưới dạng chuỗi.
Move Di chuyển con trỏ bản ghi trong đối tượng Recordset.
MoveFirst Chuyển con trỏ bản ghi đến bản ghi đầu tiên.
MoveLast Chuyển con trỏ bản ghi đến bản ghi cuối cùng.
MoveNext Chuyển con trỏ bản ghi đến bản ghi tiếp theo.
MovePrevious Chuyển con trỏ bản ghi đến bản ghi trước.
NextRecordset Bằng cách thực hiện một loạt các lệnh để xóa đối tượng Recordset hiện tại và trả về Recordset tiếp theo.
Open Mở một phần tử cơ sở dữ liệu, phần tử này có thể cung cấp truy cập đến các bản ghi của bảng, kết quả của truy vấn hoặc Recordset đã lưu.
Requery Cập nhật dữ liệu trong Recordset bằng cách thực hiện lại truy vấn cơ sở dữ liệu mà đối tượng dựa trên.
Resync Cập nhật lại dữ liệu hiện tại trong Recordset từ cơ sở dữ liệu gốc.
Save Lưu đối tượng Recordset vào tệp hoặc đối tượng Stream.
Seek Tìm kiếm chỉ mục của Recordset để nhanh chóng định vị dòng khớp với giá trị được chỉ định và làm cho nó trở thành dòng hiện tại.
Supports Trả về một giá trị Boole, giá trị này có thể xác định Recordset có hỗ trợ chức năng loại cụ thể hay không.
Update Lưu tất cả các thay đổi đối với một bản ghi duy nhất trong đối tượng Recordset.
UpdateBatch Lưu tất cả các thay đổi của Recordset vào cơ sở dữ liệu. Hãy sử dụng chế độ cập nhật hàng loạt.

Sự kiện

Lưu ý: Bạn không thể xử lý sự kiện bằng VBScript hoặc JScript (chỉ các ngôn ngữ Visual Basic, Visual C++, và Visual J++ mới có thể xử lý sự kiện).

Sự kiện Mô tả
EndOfRecordset Được kích hoạt khi cố gắng di chuyển đến dòng sau cuối của Recordset.
FetchComplete Được kích hoạt khi tất cả các bản ghi trong tác vụ đồng bộ đều được đọc.
FetchProgress Được kích hoạt định kỳ trong quá trình tác vụ đồng bộ, báo cáo đã đọc bao nhiêu bản ghi.
FieldChangeComplete Được kích hoạt khi giá trị của đối tượng Field thay đổi.
MoveComplete Được kích hoạt sau khi thay đổi vị trí hiện tại trong Recordset.
RecordChangeComplete Được kích hoạt sau khi thay đổi một bản ghi.
RecordsetChangeComplete Được kích hoạt sau khi thay đổi Recordset.
WillChangeField Được kích hoạt trước khi thay đổi giá trị của đối tượng Field.
WillChangeRecord Được kích hoạt trước khi thay đổi một bản ghi.
WillChangeRecordset Được kích hoạt trước khi thay đổi Recordset.
WillMove Được kích hoạt trước khi thay đổi vị trí hiện tại trong Recordset.

Bộ

Bộ Mô tả
Fields Chỉ ra số lượng đối tượng Field trong Recordset này.
Properties Chứa tất cả các đối tượng Property trong Recordset.

Thuộc tính của bộ sưu tập Fields

Thuộc tính Mô tả
Count

Trả về số lượng mục trong bộ sưu tập fields. Bắt đầu từ 0.

Ví dụ:

	countfields = rs.Fields.Count
	
Item(named_item/number)

Trả về một mục cụ thể nào đó trong bộ sưu tập fields.

Ví dụ:

	itemfields = rs.Fields.Item(1)
	hoặc	
	itemfields = rs.Fields.Item("Name")
	

Thuộc tính của bộ sưu tập Properties

Thuộc tính Mô tả
Count

Trả về số lượng mục trong bộ sưu tập properties. Bắt đầu từ 0.

Ví dụ:

	countprop = rs.Properties.Count
	
Item(named_item/number)

Trả về một mục cụ thể nào đó trong bộ sưu tập properties.

Ví dụ:

	itemprop = rs.Properties.Item(1)
	hoặc
	itemprop = rs.Properties.Item("Name")