Lập Trình Web dùng ASP (ACTIVE SERVER PAGES ) phần 9 potx

6 359 0
Lập Trình Web dùng ASP (ACTIVE SERVER PAGES ) phần 9 potx

Đang tải... (xem toàn văn)

Thông tin tài liệu

Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 49 - Response.write rs.fields (“Ten”) ‘ Xuong dong Response.write “<br>” Response.write rs.fields (“ngaysinh”) ‘ Den bang ghi tiep theo Rs.movenext Wend End if %> </body> </html> b. Chèn dữ liệu vào bảng <html> </head> <title>Chen du lieu</title> </head> <body> <% Dim db Set db = server.CreateObject(“ADODB.Connection”) db.Open (”Provider=Microsoft.Jet.OLEDB.4.0; Data source =C:\giaotrinh\dulieu.mdb”) Dim Rs Set Rs=Server.CreateObject(“ADODB.RecordSet”) Rs.Open “sinhvien”,db,1,3 ‘Thuc hien chen du lieu ‘ Them bang ghi trong vao co so du lieu Rs.AddNew ‘ gan cac gia tri cac voi cac truong trong co so du lieu Rs(“Holot”)=”Nguyen Thanh” Rs(“Ten”)=”Van” Rs(“Ngaysinh”)=Cdate(“12/4/1980”) ‘ thuc hien phuong thuc recordset.update de xac nhan nhung ‘ ca nhung gia moi. Rs.UpDate %> </body> </html> c. Thay đổi dữ liệu trong bảng <html> </head> <title>Thay doi du lieu</title> </head> <body> <% Dim db Set db = server.CreateObject(“ADODB.Connection”) Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 50 - db.Open (”Provider=Microsoft.Jet.OLEDB.4.0; Data source =C:\giaotrinh\dulieu.mdb”) Dim Rs Set Rs=Server.CreateObject(“ADODB.RecordSet”) ‘ Xac dinh bang ghi co du lieu can thay doi Rs.Open “Select * from sinhvien where ID=1” , db ‘Gan gia tri can thay doi Rs(“ten”)=”Nga” Rs(Ngaysinh)=Cdate(“14/4/1980”) ‘ Ghi nhung thay doi vao co so du lieu Rs.Update %> </body> </html> d. Xoá bảng ghi trong bảng <html> </head> <title>Thay doi du lieu</title> </head> <body> <% Dim db Set db = server.CreateObject(“ADODB.Connection”) db.Open (”Provider=Microsoft.Jet.OLEDB.4.0; Data source =C:\giaotrinh\dulieu.mdb”) Db.Execute (“delete * from sinhvien where ten=’Nga’”) %> </boby> </html> Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 51 - CHƯƠNG 6 DÒ LỖI VÀ CÁCH XỬ LÝ 1. Các loại lỗi a. Lỗi cú pháp (syntax) hay lỗi biên dịch (compile) Lỗi cú pháp (syntax error) là loại lỗi thường gặp khi mới làm quen với một ngôn ngữ lập trình. Lỗi này dễ tìm và dễ khắc phục nhất, đa số trường hợp trình biên dịch hay thông dịch sẽ chỉ định số hàng và vị trí ký tự trong hàng có lỗi để báo cho người lập trình biết. Ví dụ: Xét trang error.asp sau: <html> <head> <title>Thong bao loi</title> </head> <body> <% response.write "Hom nay, ngày: " & date(), & " chao mung cac ban" %> </body> </html> Kết quả muốn hiển thị: Hom nay, ngay 18/02/2003, chao mung cac ban. Tuy nhiên, trình duyệt sẽ thông báo lỗi khi chạy trang error.asp này như sau: Thông báo lỗi chỉ rõ lỗi ở đây là lỗi cú pháp (Syntax error), lỗi trang error.asp, dòng thứ 8 (kể từ trên xuống), cột thứ 42 (kể từ trái qua). Dấu phẩy (,) trong mã trên được hiểu là một ký tự, như vậy phải được đặt trong dấu nháy kép, đồng thời phải sử dụng ký tự nối hàng “_” ở cuối hàng thứ 8 (để nối với hàng thứ 9), như vậy đoạn mã phải được sửa lại như sau: <% response.write "Hom nay, ngày: " & date()_ & " ,chao mung cac ban" %> Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 52 - Lưu ý: trình thông dịch chỉ báo nơi nó tìm ra lỗi, nhưng không phải nhất thiết là nơi lỗi thực sự xảy ra, vì vậy, cần xem xét đến thứ tự đúng của các dấu nháy, các ký tự nối chuỗi, nối hàng, trong dòng có thông báo lỗi. Đối với những lỗi cú pháp do sai chính tả, từ khoá hay tên hàm thì dễ phát hiện hơn do các thông báo lỗi thường chỉ định vị trí thực sự của lỗi. Ví dụ: Để in ra ngày tháng của ngày mai, xét file error1.asp sau: <html> <head> <title>Ngay mai</title> </head> <body> <% response.write DateAdd(Now(),"d",1) %> </body> </html> Khi thực thi error1.asp, ta nhận thấy lỗi sau: Xuất hiện lỗi trên là do sai cú pháp của hàm DateAdd, hàm dateAdd có dạng : DateAdd(chuỗi_chu_kỳ, độ_gia, ngày_bắt_đầu), và cách viết đúng như sau: Response.write DateAdd(“d”,1,now()) Trình biên dịch đã phát hiện ra sai kiểu dữ liệu, vì thông số thứ hai là kiểu integer nhưng ta đã cung cấp giá trị kiểu string. Một số lỗi thường gặp khác khó tìm, phát sinh khi xây dựng các trang có sử dụng cấu trúc script, hay những lệnh lồng nhau như if then else end if hay do while loop. Ví dụ: Xét trang login.asp sau: <html> <head> <title>Login</title> </head> <body> <% ho=request.form("fname") ten=request.form("lname") if ho<>"" then if ten<>"" then Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 53 - response.write "Chao ban," & ho & "<b>" & ten & "</b>" else response.write "Ban chua nhap ten" else response.write " Ban chua nhap ho" end if %> </body> </html> Khi thực thi login.asp, sẽ xuất hiện lỗi như sau: Lỗi được thông báo ở dòng 14, và cần một lệnh “End”?. Xét lại trang, bạn sẽ thấy lỗi là do thiểu lệnh End if, không phải End. b. Lỗi ngữ nghĩa (semantic) hay lỗi thực thi (runtime) Lỗi thực thi là lỗi chỉ phát sinh khi đoạn mã đã được chạy, hợp lệ khi biên dịch hay phân tích cú pháp. - Lỗi làm ngưng thực thi: lỗi thường có phản hồi khi chạy, trường hợp này rất dễ biết lỗi nằm ở đâu Ví dụ: Trang error3.asp sau đây khai báo một mảng có 6 phần tử: <head> <title>Khai bao mang</title> </head> <body> <% dim arr(5) arr(6)="thong bao loi" %> </body> Nếu thực thi trang error3.asp, thông báo lỗi xuất hiện vì đã đặt giá trị cho phần tử có chỉ số 6. Ở đây, khi khai báo mảng, mảng sẽ có 6 phần tử, chỉ số từ 0 đến 5. Vì kiểu lỗi là lỗi thực thi nên thông báo lỗi chỉ rõ số hàng và đặc tả lỗi, giúp người lập trình nhanh chóng phát hiện lỗi và cách khắc phục lỗi. Active Server Pages Trung tâm phát triển phần mềm - ĐHĐN - 54 - - Lỗi tạo kết quả sai: đây là lỗi rất khó tìm và sửa, vì mã vẫn tiếp tục thực hiện nhưng tạo kết quả sai. Ví dụ: Xét trang error4.asp nhận giá trị ngày tháng năm sinh nhập từ 1 form: <head> <title>ngay thang</title> </head> <body> <% nsinh=request.form("ngaysinh") response.write "Ngay sinh cua ban la:" & nsinh intday=day(nsinh) intmonth=month(nsinh) intyear=year(nsinh) response.write "<br>Ngay: " & intday & "<br>" response.write "Thang: " & intmonth & "<br>" response.write "Nam: " & intyear %> </body> + Nếu nhập đúng giá trị kiểu ngày-tháng-năm, sẽ cho kết quả đúng. + Giả sử chỉ nhập năm: 1978, ta thấy trang vẫn thực thi nhưng cho kết quả sai. Như vậy, nếu không xem xét kỹ, chúng ta sẽ không phát hiện ra lỗi. . trang error .asp này như sau: Thông báo lỗi chỉ rõ lỗi ở đây là lỗi cú pháp (Syntax error), lỗi trang error .asp, dòng thứ 8 (kể từ trên xuống), cột thứ 42 (kể từ trái qua). Dấu phẩy ( ,) trong mã. db = server. CreateObject(“ADODB.Connection ) db.Open (”Provider=Microsoft.Jet.OLEDB.4.0; Data source =C:giaotrinhdulieu.mdb ) Dim Rs Set Rs =Server. CreateObject(“ADODB.RecordSet ) Rs.Open. cac gia tri cac voi cac truong trong co so du lieu Rs(“Holot )= ”Nguyen Thanh” Rs(“Ten )= ”Van” Rs(“Ngaysinh )= Cdate(“12/4/ 198 0 ) ‘ thuc hien phuong thuc recordset.update de xac nhan nhung

Ngày đăng: 14/07/2014, 01:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan