Tải bản đầy đủ (.ppt) (9 trang)

Bài giảng lập trình trực quan bài 2 ADODB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (216.08 KB, 9 trang )

Mục đích :
+ Giúp chúng ta có thể nắm bắt một cách tổng quát thứ tự các bước lập trình
với Cơ Sở Dữ Liệu (CSDL) bằng cách sử dụng ADODB.
+Đối tượng ADODB bao gồm : Connection, Command và RecordSet.

1, Đối tượng Connection :
1.1, Kết nối với CSDL :
- Các loại CSDL có thể kết nối : Access, SQL Server, Oracle, Excel…
-Việc kết nối thông tin từ CSDL cho đối tượng Connection được thực hiện
thông qua thuộc tính ConnectionString.
ConnectionString gồm 2 thông tin chính là Provider và Nguồn dữ liệu, các
thông tin khác có thể có thêm là UserName và PassWord để có thể truy cập
CSDL có bảo mật
- Sau đó, sử dụng hành động Open để mở kết nối. Việc kiểm tra trạng thái
kết nối thông qua thuộc tính State .


1, Đối tượng Connection :
1.1, Kết nối với CSDL :
-Thủ tục kết nối cơ sở dữ liệu :
Dim CN As New ADODB.Connection,dc As String
Sub KetNoi()
dc = App.Path & " \tenCSDL.mdb"
CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dc

CN.CursorLocation = adUseClient
CN.Open
End Sub
- Thuộc tính CursorLocation giúp chỉ định cách Data Project cung cấp các
chức năng thao tác với CSDL gồm hai giá trị adUseServer và adUseClient.



1, Đối tượng Connection :
1.2, Thực Hiện Truy Vấn SQL :
- Sau khi đã kết nối với CSDL, việc truy xuất dữ liệu thường thông qua các câu
truy vấn SQL.
- Hành động Execute của đối tượng Connection dùng để thực hiện một câu
truy vấn SQL
sql = “Update KetQua Set Diem = Diem + 1 Where MaMon=’TH01’”
CN.Execute sql
1.3, Quản Lý Lỗi :
- Connection cung cấp thuộc tính Errors chứa tập hợp lỗi để giúp người lập
trình có thể kiểm soát lỗi phát sinh.
- Tập hợp Errors gồm các đối tượng Error với những thuộc tính cung cấp
thông tin về lỗi xáy ra như Description, Source, SQL State,…


2, Đối tượng RecordSet :
2.1, Tạo đối tượng RecordSet :
- RecordSet cho phép làm việc trên từng dòng dữ liệu thay vì trên một tập hợp
nhiều mẩu tin. Do đó, ta có thể coi RecordSet như một Table hay một Query
trong CSDL.Qua đó việc thao tác trên dữ liệu sẽ rất dễ dàng.
- Có thể tạo một RecordSet bằng nhiều cách khác nhau như : Chỉ ra tên bảng
hay bằng một câu truy vấn SQL
- Việc mở RecordSet được thực hiện qua hành động Open.
Tùy vào ngữ cảnh lập trình, RecordSet cung cấp các thuộc tính CursorType
và LockType để người dùng truy cập dữ liệu. Hai thuộc tính này có thể được
cung cấp trực tiếp qua hành động Open.


2, Đối tượng RecordSet :

2.2, Hiển thị dữ liệu :
- RecordSet thông qua hai thuộc tính DataSource và DataField cho phép
hiển thị dữ liệu lên các điều khiển(TextBox, Label, CheckBox…)
- Ví Dụ :
Dim rsSinhVien As ADODB.Recordset
Set rsSinhVien = New ADODB.Recordset
rsSinhVien.Open "SINHVIEN", CN, adOpenStatic, _
adLockOptimistic,adCmdTable
Set txtHoTen.DataSource = rsSinhVien
txtHoTen.DataField = "HoTen"
2.3, Làm việc trên các mẩu tin :
- Mẩu tin đang được làm việc gọi là mẩu tin hiện hành
- Để chuyển sang làm việc trên các mẩu tin khác trong RecordSet, người
dùng sử dụng hành động MoveFirst, MoveLast, Move, MovePrevious,
MoveNext, Bookmark.


2, Đối tượng RecordSet :
2.4, Cập nhật dữ liệu :
Ngoài việc là nguồn hiển thị dữ liệu, RecordSet còn cho phép cập nhật dữ liệu
gián tiếp vào CSDL bằng các hành động AddNew, Delete, Update và
CancelUpdate
2.5, Lọc, tìm kiếm và sắp xếp mẩu tin :
2.5.1, Để lọc các mẩu tin ta sử dụng thuộc tính Filter để lọc
VD : rsSinhVien.Filter = “MaKhoa = ‘TH01’ And DiemTB >= 5”
2.5.2, Để tìm kiếm, RecordSet cung cấp hành động Find. Hành động này chỉ
có thể tìm trên một điều kiện đơn (không có AND,OR …)
VD : rsSinhVien.Find “MaKhoa = ‘TH01’”, 0, adSearchForward, _
adBookmarkFirst
2.5.3, Để sắp xếp chúng ta sử dụng thuộc tính Sort của RecordSet

VD : rsSinhVien.Sort = “MaKhoa, DiemTB Desc, MaSV”


2, Đối tượng RecordSet :
2.6, Thông tin về Field dữ liệu :
Thuộc tính Fields là một tập hợp các Field. Thông qua Field ta có thể biết đầy
đủ các thông tin như Name,Type,DefineSize,Value,...
Ví Dụ :
Dim f as Field
For Each f in rsSinhVien.Fields
MsgBox “Ten field: “ & f.Name & “ Kieu: “ & f.Type & “ Gia tri: “ & _
f.Value
Next
2.7, Thông tin về dữ liệu đang chứa trong RecordSet :
- RecordCount : tổng số mẩu tin
- AbsolutePosition, BOF, EOF : vị trí mẩu tin hiện hành
- EditMode : tình trạng mẩu tin (rsSinhVien.EditMode = adEditAdd,…)
- State : trạng thái kết nối với CSDL
VD : rsSinhVien.State = adStateOpen


3, Đối tượng Command :
3.1, Command cho phép thi hành các câu truy vấn SQL :
3.1.1, Các câu SQL tĩnh :
Dim rsSinhVien As ADODB.Recordset, Cmd As ADODB.Command
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = CN
Cmd.CommandText = "Select * From SinhVien Where DiemTB>=5"
Cmd.CommandType = adCmdText
set rsSinhVien=cmd.Execute

3.1.2, Các câu SQL có tham số :
Dim rsSinhVien As ADODB.Recordset, Cmd As ADODB.Command
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = CN
Cmd.CommandText = "Select * From SinhVien Where DiemTB>=? And
MaKhoa=?"
Cmd.CommandType = adCmdText
Set rsSinhVien = Cmd.Execute(, Array(5, "TH01"))


3, Đối tượng Command :
3.2, Command cho phép thi hành các Stored Procedure (Query) :
- Đối tượng Command cho phép người dùng gọi thực hiện các Query trong
CSDL từ chương trình VB.
Ví dụ :
Dim rsSinhVien As ADODB.Recordset, Cmd As ADODB.Command
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = CN
Cmd.CommandText = "Q_DS_SV_TotNghiep"
Cmd.CommandType = adCmdStoredProc
Set rsSinhVien=cmd.Execute
- Với các Query (Store Procedure) có tham số, có thể dùng tập hợp Parameters
hay hành động CreateParameter để truyền tham số cho Query trước khi thực hiện
cũng như nhận các giá trị trả về.



×