sql = "UPDATE Course SET DurationInHour = 45 WHERE DurationInHour = 30"
con.Execute sql con.Close
Set con = Nothing
Ví dụ: Xóa các bản ghi thỏa mãn điều kiện
Đoạn mã sau sẽ xóa các bản ghi trong bảng Course thuộc CSDL C:UsersM11x- R3DesktopAccessqldt.accdb thỏa mãn điều kiện CName = “C++”
Dim con As ADODB.Connection Dim cnstr As String
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set con = New ADODB.Connection con.Open cnstr
Dim sql As String
sql = "DELETE FROM Course WHERE CNAME = „C++‟"
con.Execute sql con.Close
Set con = Nothing
Ví dụ: Lấy một tập các bản ghi
Đoạn mã sau đây sẽ lấy tất cả các bản ghi trong bảng Course thuộc CSDL C:UsersM11x-R3DesktopAccessqldt.accdb rồi viết vào cửa sổ Immediate tên các khóa học, mỗi tên trên một dòng.
Dim con As ADODB.Connection Dim cnstr As String
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set con = New ADODB.Connection con.Open cnstr
Dim sql As String
sql = "SELECT * FROM Course" Dim rec As New ADODB.Recordset
Set rec = con.Execute(sql) While (Not rec.EOF)
Debug.Print rec.Fields("CName").value rec.MoveNext
Wend con.Close
Set con = Nothing
Phương thức Close
Dùng để đóng một connection đang mở Cú pháp: Connection.Close
Ví dụ: cn.Close
Phương thức BeginTrans
Bắt đầu một giao dịch mới giữa đối tượng Connection và nguồn dữ liệu. Cú pháp:
Tên biến = Connection.BeginTrans
Giá trị trả về khi gọi phương thức này là một số kiểu Long chỉ ra mức độ của giao dịch.
Phương thức CommitTrans
Lưu lại các thay đổi do giao dịch hiện tại sinh ra và kết thúc nó. Cú pháp:
Connection.CommitTrans
Phương thức RollbackTrans
Hủy bỏ các thay đổi do giao dịch hiện tại sinh ra và kết thúc nó. Cú pháp:
Connection.RollbackTrans
Thuộc tính Provider
Là một xâu ký tự chỉ ra tên của provider như trong phương thức Open
Thuộc tính ConnetionString
Là một xâu ký tự chỉ ra chuỗi kết nối như trong phương thức Open
Thuộc tình State
Cho biết trạng thái của Connection là một trong các trạng thái sau:
Giá trị | Mô tả | |
adStateClosed | 0 | Connection bị đóng (closed) |
adStateOpen | 1 | Connection đang mở (opened) |
adStateConnecting | 2 | Connection đang kết nối (connecting) |
adStateExecuting | 4 | Connection đang thi hành một câu lệnh SQL (executing) |
adStateFetching | 8 | Connection đã tác động được vào các bản ghi (retrieved) |
Có thể bạn quan tâm!
- Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 9
- Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 10
- Các Đối Tượng Và Mối Quan Hệ Giữa Chúng Trong Kiến Trúc Ado
- Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 13
- Nhập môn hệ quản trị cơ sở dữ liệu Phần 2 - 14
Xem toàn bộ 114 trang tài liệu này.
2. Đối tượng Command
Được sử dụng để thi hành câu lệnh SQL.
Một số thuộc tính và phương thức của đối tượng Command
Thuộc tính ActiveConnection
Để thiết lập đối tượng Connection cho Command.
Thuộc tính CommandText
Là một câu lệnh SQL
Phương thức Excute
Để thi hành câu lệnh trong CommandText
Ví dụ: Thêm mới bản ghi
Đoạn mã sau sẽ chèn thêm một bản ghi vào bảng Course(CID, CName, DurationInHour, Description) trong CSDL C:UsersM11x- R3DesktopAccessqldt.accdb
Dim con As ADODB.Connection Dim cnstr As String
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set con = New ADODB.Connection
con.Open cnstr
Dim sql As String
sql = "INSERT INTO Course (Cname, DurationInHour, Description) VALUES ('C# in advance', 50, 'For immediate student')"
Dim cmd As New ADODB.Command cmd.ActiveConnection = con cmd.CommandText = sql
rec = cmd.Execute con.Close
Set con = Nothing
Ví dụ: Cập nhật bản ghi đã tồn tại với các giá trị mới
Đoạn mã sau đây sẽ thực hiện cập nhật các bản ghi thỏa mãn điều kiện thuộc tính DurationInHour = 30 lên 45 trong bảng Course của CSDL C:UsersM11x- R3DesktopAccessqldt.accdb
Dim con As ADODB.Connection Dim cnstr As String
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set con = New ADODB.Connection con.Open cnstr
Dim sql As String
sql = "UPDATE Course SET DurationInHour = 45 WHERE DurationInHour = 30"
Dim cmd As New ADODB.Command cmd.ActiveConnection = con cmd.CommandText = sql cmd.Execute
con.Close
Set con = Nothing
Ví dụ: Xóa các bản ghi thỏa mãn điều kiện
Đoạn mã sau sẽ xóa các bản ghi trong bảng Course thuộc CSDL C:UsersM11x- R3DesktopAccessqldt.accdb thỏa mãn điều kiện CName = “C++”
Dim con As ADODB.Connection
Dim cnstr As String
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set con = New ADODB.Connection con.Open cnstr
Dim sql As String
sql = "DELETE FROM Course WHERE CNAME = „C++‟"
Dim cmd As New ADODB.Command cmd.ActiveConnection = con cmd.CommandText = sql cmd.Execute
con.Close
Set con = Nothing
Ví dụ: Lấy một tập các bản ghi
Đoạn mã sau đây sẽ lấy tất cả các bản ghi trong bảng Course thuộc CSDL C:UsersM11x-R3DesktopAccessqldt.accdb rồi viết vào cửa sổ Immediate tên các khóa học, mỗi tên trên một dòng.
Dim con As ADODB.Connection Dim cnstr As String
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set con = New ADODB.Connection con.Open cnstr
Dim sql As String
sql = "SELECT * FROM Course" Dim rec As New ADODB.Recordset Dim cmd As New ADODB.Command cmd.ActiveConnection = con cmd.CommandText = sql
Set rec = cmd.ExecuteWhile (Not rec.EOF) Debug.Print rec.Fields("CName").value
rec.MoveNext
Wend con.Close
Set con = Nothing
3. Đối tượng Recordset
Chứa một tập các bản ghi của một bảng hoặc là kết quả của câu lệnh SQL được thi hành. Tại bất kỳ thời điểm nào, đối tượng Recordset cũng chỉ tham chiếu đến 1 bản ghi trong tập các bản ghi đó và được gọi là bản ghi hiện thời.
Đối tượng này có các thuộc tính và phương thức tương tự các thuộc tính và phương thức của đối tượng Recordset trong mô hình DAO. Sau đây sẽ minh họa một số ví dụ:
Ví dụ: Thêm mới một bản ghi
Phương thức AddNew và Update
Đoạn mã sau sẽ chèn thêm một bản ghi vào bảng Course(CID, CName, DurationInHour, Description) trong CSDL C:UsersM11x- R3DesktopAccessqldt.accdb
Dim cn As adodb.Connection Dim cnstr
Dim rec As adodb.Recordset
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set cn = New adodb.Connection Set rec = New adodb.Recordset cn.Open cnstr
rec.Open "Course", cn, adOpenDynamic, adLockOptimistic rec.addnew
rec.Fields(“CName”) = “LPI” rec.Fields(“DurationInHour”) = 50 rec.Fields(“Description”) = “Overview of Linux” rec.Update: rec.Close
cn.close: set rec = Nothing
Chú ý:
Phương thức Open của Recordset có 4 tham số lần lượt bao gồm:
- Source: có thể là tên một bảng hoặc một câu lệnh sql SELECT
- ActiveConnection: là một connection đang được mở
- CursorType: kiểu con trỏ của bản ghi cho phép con trỏ chỉ đọc một chiều hay hai chiều, …
- LockType: là kiểu khóa, cho phép có được ghi hay chỉ đọc record, …
Trong ví dụ trên: CursorType = adOpenDynamic có nghĩa là con trỏ bản ghi có thể dịch chuyển cả hai chiều (MoveNext, MovePrevious, MoveLast, MoveFirst đều được); LockType = adLockOptimistic, nghĩa là recordset được phép cả đọc và ghi.
Ví dụ: Cập nhật bản ghi đã tồn tại với các giá trị mới Phương thức Update
Đoạn mã sau đây sẽ thực hiện cập nhật các bản ghi thỏa mãn điều kiện thuộc tính DurationInHour = 30 lên 45 trong bảng Course của CSDL C:UsersM11x- R3DesktopAccessqldt.accdb
Dim cn As adodb.Connection Dim cnstr, sql
Dim rec As adodb.Recordset
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source = C:UsersM11x-R3DesktopAccessqldt.accdb; Persist Security Info=False"
Set cn = New adodb.Connection Set rec = New adodb.Recordset cn.Open cnstr
Sql = “SELECT * FROM Course WHERE DurationInHour =30” rec.Open sql, cn, adOpenDynamic, adLockOptimistic while (not rec.EOf)
rec.Fields(“DurationInHour”) = 45
rec.Update rec.moveNext
wend
rec.Close: cn.Close: set cn = Nothing
Ví dụ: Xóa các bản ghi thỏa mãn điều kiện
Đoạn mã sau sẽ xóa các bản ghi trong bảng Course thuộc CSDL C:UsersM11x- R3DesktopAccessqldt.accdb thỏa mãn điều kiện CName = “C++”
Dim cn As adodb.Connection Dim cnstr, sql
Dim rec As adodb.Recordset
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source =
C:UsersM11x-R3DesktopAccessqldt.accdb; Info=False"
Set cn = New adodb.Connection Set rec = New adodb.Recordset
cn.Open cnstr
Persist
Security
sql = “SELECT * FROM Course WHERE CName =‟C++‟” rec.Open sql, cn, adOpenDynamic, adLockOptimistic while (not rec.EOf)
rec.Delete rec.moveNext
wend
rec.Close: cn.Close: set cn = Nothing
Ví dụ: Lấy một tập các bản ghi
Đoạn mã sau đây sẽ lấy tất cả các bản ghi trong bảng Course thuộc CSDL C:UsersM11x-R3DesktopAccessqldt.accdb rồi viết vào cửa sổ Immediate tên các khóa học, mỗi tên trên một dòng.
Dim cn As adodb.Connection Dim cnstr, sql
Dim rec As adodb.Recordset
cnstr = "Provider=Microsoft.ACE.OLEDB.12.0; Data source =
C:UsersM11x-R3DesktopAccessqldt.accdb; Info=False"
Set cn = New adodb.Connection Set rec = New adodb.Recordset cn.Open cnstr
sql = "SELECT * FROM Course" rec.Open sql, cn
While Not rec.EOF
Debug.Print rec.Fields(“CName”)
rec.MoveNext
Persist
Security