Bài 2 ADODB

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

ppt8 trang | Chia sẻ: phanlang | Lượt xem: 2368 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài 2 ADODB, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
+ 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. Mục đích : +Đố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ề.

Các file đính kèm theo tài liệu này:

  • pptbai2_2456.ppt