<< Chapter < Page Chapter >> Page >

"SERVER=(local);UID=user;PWD=user;"

cnn1.Open

Set cmdByRoyalty = New ADODB.Command

Set cmdByRoyalty.ActiveConnection = cnn1

cmdByRoyalty.CommandText = "byroyalty"

cmdByRoyalty.CommandType = adCmdStoredProc

cmdByRoyalty.CommandTimeout = 15

' Định nghĩa đối số đầu vào cho thủ tục lưu trữ

intRoyalty = Trim(InputBox( "Enter royalty:"))

Set prmByRoyalty = New ADODB.Parameter

prmByRoyalty.Type = adInteger

prmByRoyalty.Size = 3

prmByRoyalty.Direction = adParamInput

prmByRoyalty.Value = intRoyalty

cmdByRoyalty.Parameters.Append prmByRoyalty

' Tạo một recordset bằng cách thi hành đối tượng Command.

Set rstByRoyalty = cmdByRoyalty.Execute()

' Mở bảng Authors để lấy tên hiển thị

Set rstAuthors = New ADODB.Recordset

rstAuthors.Open "authors", cnn1, , , adCmdTable

Debug.Print "Authors with "&intRoyalty&_

" percent royalty"

Do While Not rstByRoyalty.EOF

strAuthorID = rstByRoyalty!au_id

Debug.Print , rstByRoyalty!au_id&", ";

rstAuthors.Filter = "au_id = '"&_

strAuthorID&"'"

Debug.Print rstAuthors!au_fname&“ - “&_

rstAuthors!au_lname

rstByRoyalty.MoveNext

Loop

rstByRoyalty.Close

rstAuthors.Close

cnn1.Close

End Sub

Đối tượng field

Dùng đối tượng Field và tập hợp Fields khi ta muốn truy cập giá trị của một trường của một Recordset nào đó, kỹ thuật này tương tự như đối với DAO.

Dịch vụ dữ liệu từ xa của ADO

Đây là kỹ thuật sử dụng thư viện Remote Data Service (RDS) để vận chuyển ADO Recordset từ server đến máy tính client Recordset kết quả được lưu ở máy client và chúng được ngắt kết nối đến server.

RDS là một phần của Microsoft Data Access Components (MDAC). Các thông tin về RDS có thể tìm thấy ở trang (External Link) . RDS gồm 2 phần chính:

- RDS 1.5 server: đi kèm khi cài đặt Internet Information Server (IIS) 4.0.

- RDS 1.5 client đi kèm khi cài đặt Internet Explorer (IE) 4.0.

Thư viện ADODB gồm các thành phần hoạt động chủ yếu phía server (server side) như các đối tượng Connection, Command, Error, Parameters ... Sẽ thật hiệu quả nếu sử dụng các thành phần này giao tiếp với cơ sở dữ liệu. Tuy nhiên trong trường hợp sử dụng các chức năng cần phải có ở phía client thì ta cần phải phân phối kèm theo một số tập tin và sử dụng ODBC cho mỗi máy client. Đối tượng ADODB Recordset không thể phân phối với các thành phần của RDS Client. Thay vào đó thư viện đối tượng Microsoft ActiveX Data Objects RecordSet (ADOR) được sử dụng. Thư viện này gồm các thành phần hoàn toàn nằm ở phía client và cho phép ta có các thao tác trên một recordset thật sự phía client. ADOR không có các đối tượng Connection, Command, Error, hay Parameters. ADOR có các chức năng cho phép phân phối recordset với các thành phần RDS client.

Một ADO Recordset không thể vận chuyển thông qua giao thức http. Thay vào đó RDS được sử dụng để nhận và tương tác dữ liệu từ xa thông qua http. Một proxy RDS được sử dụng để kiểm soát từ xa một ADOR Recordset ngắt kết nối truyền thông qua giao thức http. Như vậy RDS là vật chứa (container) cho phép lưu trữ và truy cập từ xa các ADOR Recordset.

Ta có thể dùng đối tượng DataControl của RDS để nhận về đối tượng Recordset của ADO từ Internet.

Để có thể sử dụng kỹ thuật này, ta cần tham khảo các thuộc tính chủ yếu của đối tượng DataControl.

- Thuộc tính Connect:

DataControl.Connect = "DSN=DSNName;UID=usr;PWD=pw;"

- Thuộc tính Server: Xác định máy chủ Web chứa nguồn dữ liệu bao gồm tên và giao thức nối kết.

- Thuộc tính SQL: Là câu lệnh truy vấn để nhận về đối tượng Recordset

DataControl.SQL = "QueryString"

- Thuộc tính ExecuteOptions: xác định việc thi hành các câu lệnh truy vấn một cách đồng bộ hay không, các giá trị là một trong hai giá trị sau đây:

Hằng Mô tả
adcExecSync Thi hành đồng bộ
adcExecAsync Mặc định, Thi hành không đồng bộ.

- Thuộc tính ReadyState: Xác định trạng thái của điều khiển.

Giá trị Mô tả
adcReadyStateLoaded Câu truy vấn hiện hành vẫn đang còn thực hiện và chưa có một dòng nào được trả về. Đối tượng Recordset của RDS.DataControl chưa thể sử dụng.
adcReadyStateInteractive Tập hợp dòng ban đầu đã được trả về và chứa trong đối tượng Recordset, các dòng tiếp theo vẫn đang được trả về.
adcReadyStateComplete Tất cả các dòng đều đã được chứa trong đối tượng Recordset.

- Phương thức Refresh: thi hành câu truy vấn.

- Thuộc tính Recordset: trả về Recordset kết quả.

Recordset = DataControl.Recordset

- Phương thức DoEvents: Đây là hàm của VB, nó sẽ trả điều khiển cho hệ điều hành thực hiện các quá trình khác.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Giáo trình visual basic. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10777/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?

Ask