1. Trang chủ
  2. » Công Nghệ Thông Tin

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

6 361 0
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 160,43 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ư

Trang 1

Response.write rs.fields (“Ten”)

‘ Xuong dong

Response.write “<br>”

Response.write rs.fields (“ngaysinh”)

‘ Den bang ghi tiep theo

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;

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”)

Trang 2

db.Open (”Provider=Microsoft.Jet.OLEDB.4.0;

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;

Db.Execute (“delete * from sinhvien where ten=’Nga’”)

%>

</boby>

</html>

Trang 3

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"

%>

Trang 4

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

Trang 5

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

Trang 6

- 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

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

TỪ KHÓA LIÊN QUAN