Lập trình truy xuất database dùng ADO

Một phần của tài liệu Giáo trình: Máy tính số potx (Trang 170 - 174)

I E= T*R

LINH KIỆN PHẦN MỀM, TRUY XUẤT DATABASE & KIỂM THỬ PHẦN MỀM

12.6 Lập trình truy xuất database dùng ADO

Định nghĩa DSN (Data source name) miêu tả file database, nếu có bước này, ứng dụng truy xuất database thông qua tên luận lý DSN mà không cần biết chính xác vị trí đường dẫn file database và máy chứa file database. Dùng icon "ODBC ..." trong Control Panel của Windows để định nghĩa DSN.

Trong ứng dụng ta dùng đối tượng ADODB để truy xuất database theo qui trình điển hình sau :

1. tạo 1 đối tượng Connection miêu tả database cần truy xuất.

2. gọi method OpenSchema trên đối tượng Connection để tìm các Table trên database. 3. khi user chọn 1 Table (hay dùng lệnh SQL để miêu tả điều kiện xác định các record),

ta gọi method Execute trên đối tượng Connection để tạo 1 đối tượng RecordSet

chứa các record tìm được.

4. duyệt các record trong RecordSet và xử lý chúng theo yêu cầu. 5. đóng và xóa RecordSet và lập lại các bước 3, 4 để xử lý Table khác.

6. đóng và xóa các đối tượng đã tạo ra để giải phóng bộ nhớ do chúng chiếm.

Thí dụ lập trình truy xuất database dùng ADO

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

Chi tiết các thủ tục xử lý sự kiện

Dim adoConnection As ADODB.Connection ' biến tham khảo đến Connection Dim adoRsFields As ADODB.Recordset ' biến tham khảo đến RecordSet

' Thủ tục xử lý click button Browse Private Sub cmdBrowse_Click()

' hiển thị dialog box duyệt và chọn file CommonDialog1.ShowOpen

' hiển thị file được chọn vào textbox

txtFileName.Text = CommonDialog1.FileName

' duyệt các table và hiển thị tên của chúng vào ComboBox ListAccessTables (txtFileName.Text)

End Sub

' Thủ tục phục vụ sự kiện form thay bị thay đổi kích thước.

http://www.foxitsoftware.com For evaluation only.

Private Sub Form_Resize()

' vẽ lại ListBox để phù hợp với kích thước mới của form ScaleMode = vbPixels

RsList.Move 5, 60, Me.ScaleWidth - 10, Me.ScaleHeight - 65 End Sub

Private Sub ListAccessTables(strDBPath As String)

While cbTable.ListCount <> 0 ' Xóa danh sách hiện hành cbTable.RemoveItem 0

Wend

' 1. Tạo 1 connection đến file database

Set adoConnection = New ADODB.Connection

adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath ' 2. Duyệt các tables, 'add' tên của từng table vào danh sách ComboBox.

Set adoRsFields = adoConnection.OpenSchema(adSchemaTables) With adoRsFields

Do While Not .EOF

If .Fields("TABLE_TYPE") = "TABLE" Then cbTable.AddItem .Fields("TABLE_NAME") End If

.MoveNext Loop

End With

adoRsFields.Close ' đóng và xóa recordset chứa các table Set adoRsFields = Nothing

Generated by Foxit PDF Creator © Foxit Software

http://www.foxitsoftware.com For evaluation only.

' lưu ý vẫn để mở Connection đến file database hầu truy xuất lại End Sub

' Thủ tục xử lý click chọn table trong ComboBox Private Sub cbTable_Click()

Dim fcount As Integer, rcount As Integer, strBuf As String

' 3. Tạo đối tượng RecordSet chứa các record của Table được chọn

Set adoRsFields = adoConnection.Execute("SELECT * FROM " & cbTable.Text) ' 4. Duyệt các record trong RecordSet và hiển thị chúng trong ListBox

With adoRsFields

rcount = 0 ' chỉ số record

fcount = .Fields.Count ' số field trong từng record

Do While Not .EOF ' duyệt từng record trong recordset rcount = rcount + 1

strBuf = Str(rcount) & ": " & .Fields(0).Value

For idx = 1 To fcount - 1 ' duyệt từng field và nối kết vào chuỗi strBuf strBuf = strBuf & ", " & .Fields(idx).Value

Next

RsList.AddItem strBuf ' add chuỗi kết quả vào Lisbox .MoveNext ' di chuyển đến record kế tiếp

Loop End With

adoRsFields.Close ' đóng và xóa recordset Set adoRsFields = Nothing

End Sub

http://www.foxitsoftware.com For evaluation only.

Một phần của tài liệu Giáo trình: Máy tính số potx (Trang 170 - 174)

Tải bản đầy đủ (PDF)

(176 trang)