Chi tiết thủ tục hiển thị danh sách các Table của database

Một phần của tài liệu BÀI GIẢNG MÔN TIN HỌC-MÔN TIN HỌC (Trang 169)

I E= T*R

Chi tiết thủ tục hiển thị danh sách các Table của database

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 339 ‰ Đị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 Connectionmiê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 RecordSetchứ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.

Lp trình truy xut database dùng ADO

Chương 12 : Linh kiện phần mềm & truy xuất database

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 340

Thí d lp trình truy xut database dùng ADO

TextEdit qui định file cần truy xuất. Button duyệt và chọn file database. ComboBox liệt kê các Table trong file. Listbox hiển thịcác record trong 1 Table

đã chọn (đểxem chứ

không hiệu chỉnh).

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 341

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. 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

Chi tiết các th tc x lý s kin

Chương 12 : Linh kiện phần mềm & truy xuất database

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 342

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

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

Chi tiết thủ tục hiển thị danh sách các Table của database

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 343

' 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

Chi tiết các th tc x lý s kin

Chương 12 : Linh kiện phần mềm & truy xuất database

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 344

‰ Sau khi viết code cho ứng dụng xong, ta sẽ thử chạy nó để xác định xem nó giải quyết đúng yêu cầu không. Thường ứng dụng chứa nhiều lỗi sai thuộc 1 trong 2 loại sau :

ƒ các lỗi vềtừvựng (tên các phần tử, từdành riêng,..) và cú pháp của các phần tử cấu thành ứng dụng. VB sẽ phát hiện các lỗi này dễ dàng và hiển thịthông báo lỗi cho ta xem xét và sửa chữa. Thường sau khiđược VB thông báo vềcác lỗi này, ta dễdàng sửa chúng.

ƒ các lỗi về giải thuật của ứng dụng. VB không thể phát hiện các lỗi này vì chúng thuộc phạm trù ngữnghĩa. Ứng dụng sẽchạy theo giải thuậtđược miêu tả, ta phải tự đánh giá tính đúng/sai về giải thuật, nhưng việc tìm lỗi giải thuật thường rất khó. Để giúp đỡ người lập trình dễ dàng tìm ra các lỗi giải thuật, VB cung cấp công cụ cho phép họ kiểm soát được qui trình chạy ứng dụng và truy xuất các biến dữliệu của chương trình, công cụnàyđược gọi là 'Debug'.

12.4 Tng quát v hot động debug ng dng

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 345 Trong quá trình debug, ứng dụng sẽ ở1 trong 2 trạng thái sau :

ƒ Pause : trạng thái củaứng dụng trước khi chạy hay khi dừng lại theo 1 điều kiện dừng nàođó của người debug. VB sẽghi nhớlệnh sắp thi hành trước khi dừng (lệnhđầu tiên củaứng dụng nếu nó chưa bắtđầu chạy). Do tính lịch sử, ta dùng thuật ngữPC - program counter đểnói vềlệnh này. Ởtrạng thái này, người debug có thể xem giá trị của các biến dữ liệu đểbiết ứng dụng chạy

đúng hay sai theo yêu cầu rồi điều khiển việc thi hành tiếp theo của ứng dụng, lúc nàyứng dụng sẽchuyển sang trạng thái Running.

ƒ Running: trạng thái màứng dụngđang chạy các lệnh của nóđến khi nó gặp 1 điều kiện dừngđã thiết lập trước, lúc nàyứng dụng sẽchuyển vềtrạng thái

Pause.

Trong quá trình debug, ứng dụng ở trạng thái Pause chủ yếu thời gian và người debug tương tác với ứng dụng chủ yếu ở trạng thái này. Mỗi khi ứng dụngđược chạy tiếp, nó chuyển qua trạng thái Running, nhưng sẽ nhanh chóng chạy đến lệnh dừng và chuyển về trạng thái Pause (trừ phi bị 'block' chờ I/O hay bị 'loop' trong các vòng lặp vô tận).

Tng quát v hot động debug ng dng

Chương 12 : Linh kiện phần mềm & truy xuất database

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 346

Đểxem nội dung của 1 biến dữliệu, người debug có thể:

ƒ chọn menu Debug.Add Watch để thêm 1 biểu thức (thường là biến dữ liệu) vào cửa sổWatch đểxem nội dung của nó.

ƒ chọn menu Debug.Edit Watch đểhiệu chỉnh biểu thức (thường là biến dữliệu) hiện hànhởcửa sổWatch (context, watch type).

ƒ dời chuộtđến tên biến trong cửa sổcode, 1 cửa sổnhỏ chứa giá trịcủa biến

đó sẽ được hiển thị đểngười debug xem xét.

Đểhiển thịcửa sổchứa danh sách các thủtụcđang thực hiện dỡdang (các thủtục lồng nhau theo thứtự), người debug có thể:

ƒ chọn menu View.Call Stacks.

Đểxem vịtrí PC hiện hành (lệnh sắp thực hiện kếtiếp), người debug có thể: ƒ chọn menu Debug.Show Next Statement (thường khi ứng dụng dừng lại, nó

sẽhiển thịlệnh chạy kếtiếp - lệnh bịdừng với màu tôđặc biệt và có dấu mũi tênởlềtrái của lệnh).

ƒ chọn menu Debug.Set Next Statement để thiết lập lệnh chứa cursor hiện hành là lệnh chạy kếtiếp (thay vì lệnh bịdừng trướcđó)

Các thao tác để xem và hiu chnh biến d liu

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 347 Nếuđiều kiện dừng là vịtrí lệnh cụthểthì người debug có thể:

ƒ chọn menu Debug.Clear All Breakpoints để xóa tất cả các điểm dừng (breakpoint) hiện tại. Điểm dừng là lệnh mà khiứng dụng chạyđến, ứng dụng sẽ dừng lại và chuyển về trạng tháo Pause để người debug kiểm soát nội dung dữliệu củaứng dụng.

ƒ chọn menu Debug.Toggle Breakpoint đểthiết lập/xóađiểm dừngởlệnh chứa cursor hiện hành (có thể thực hiện nhanh chức năng này bằng cách dời cursor đến lềtrái của lệnh cần thiết lập/xóađiểm dừng rồi click chuột).

Nếuđiều kiện dừng là biến dữliệu/biểu thức nàođó bịthayđổi hay có giá trịTrue thì người debug có thể:

ƒ chọn menu Debug.Add Watch, nhập biểu thức (thường là 1 biến dữ liệu) rồi chọn điều kiện dừng "Break when value is True" hay "Break when value changes".

ƒ chọn menu Debug.Edit Watch, hiệu chỉnh biểu thức hiện hành (thường là 1 biến dữliệu) rồi chọnđiều kiện dừng "Break when value is True" hay "Break when value changes".

Ta có thể(và nên) thiết lập nhiềuđiều kiện dừngđồng thời để'rào chắn' luồng thi hành của chương trình.

Một phần của tài liệu BÀI GIẢNG MÔN TIN HỌC-MÔN TIN HỌC (Trang 169)

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

(175 trang)