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.
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
=5"
Cmd.CommandType = adCmdText
set rsSinhVien=cmd.Execute
=? 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ề.