Tìm hiểu về ASP
Microsoft?Active Server Pages (ASP) là một môi trường kịch bản dựa trên
server (server-side scripting) cho phé p tạ o hoặ c xâ y dự ng ca c ứ ng dụ ng Web
mạ nh chứ a các thẻ HTML, vă n ba n và cá c lệ nh script hay ca c ứ ng dụ ng Web
độ ng , giao tiế p giữ a Client va server một cách hiệu quả. Cá c trang ASP co
thể gọ i cá c thà nh phầ n ActiveX để thự c hiệ n ca c công việc như kết nối vớ i
vớ i mộ t database hoặ c thự c hiệ n mộ t tính toá n kinh doanh. Vớ i ASP, bạ n co
thể đưa nộ i dung tương tác với cá c trang Web cu a bạ n hoặ c xâ y dự ng toa n bộ
cá c ứ ng dụ ng Web sử dụ ng ca c trang HTML như giao tiế p vớ i kha ch hàng
của bạn.
t")
Sau khi đã có biế n đố i tượ ng Recordset, ta có thể khở i tạ o giá trị cho nó bằ ng
cá ch lưu kế t quả trả về mỗ i khi thự c thi phương thứ c Execute củ a đố i tượ ng
Connection hay Command. Để hiể n thị cá c record trong Recordset, sử dụ ng vò ng
lặ p thô ng qua cá c record.
Ví dụ :
<%
Set objConn = Server.CreateObject(“ADODB.Connection”) ‘tạ o mộ t thự c
thể (instance) củ a đố i tượ ng Connection
Set objRs = Server.CreateObject(“ADODB.Recordset”)
objConn.Open "DSN=student;uid=student;pwd=magic"
Set objRs = objConn.Execute(“SELECT * FROM MyTable” )
Do While objRs.EOF
Response.Write objRs(“Name”) & “”
objRs.MoveNext
Loop
Tìm hiể u về ASP
Lưu hành nộ i bộ
72
Set objRs.Close
Set objConn.Close
%>
Là m việ c vớ i Fields Collection.
Mỗ i đố i tượ ng Recordset có mộ t Fields collection chứ a dữ liệ u và thô ng
tin về mỗ i trườ ng (field) trong record hiệ n hà nh. Sử dụ ng Fields collection để lấ y
mỗ i record trong Recordset.
Phương thứ c Mô tả
Refresh Cậ p nhậ t collection để phả n á nh sự thay đổ i
tớ i giá trị cá c field.
Property Mô tả
Count Trả về số field trong collection.
Item Lấ y lạ i nộ i dung củ a cá c field trong
collection.
Để hiể n thị giá trị củ a cộ t trong bả ng, bạ n có thể sử dụ ng tê n củ a trườ ng (cộ t)
hoặ c khi bạ n khô ng biế t tê n củ a trườ ng (cộ t) thì ta có thể sử dụ ng chỉ mụ c củ a
trườ ng đó để hiể n thị .
Chú y ù : chỉ số củ a cá c filed trong record đượ c đá nh số từ 0 cho tớ i giá
objRs.Fields.Count-1.
Tìm hiể u về ASP
Lưu hành nộ i bộ
73
Ví dụ : hiể n thị tấ t cả cá c hà ng và cộ t trong mộ t bả ng
Dislay Database Example
<%
whichDSN="DSN=student;uid=student;pwd=magic"
Mysql="Select * From MyTable "
Set objConn = Server.CreateObject("ADODB.Connection")
Conn.Open whichDSN
Set objRs = Server.CreateObject("ADODB.Recordset")
Mysql="Select * From MyTable "
objRs = objConn.Execute("Select * From MyTable ")
howmanyfields= objRs .Fields.Count –1 ‘chứ a số field trong Recordset
%>
‘hiể n thị tê n củ a cá c field
Tìm hiể u về ASP
Lưu hành nộ i bộ
74
‘hiể n thị tấ t cả cá c field trong Recordset
<%
objRs .movenext
Loop
objRs.close
set objRs=nothing
objConn.close
set objConn=nothing %>
Tìm hiể u về ASP
Lưu hành nộ i bộ
75
Cá c kiể u con trỏ (Cursor)và khó a (Locking) Recordset
Mộ t cursor xá c đị nh kiể u thao tá c có thể thự c hiệ n và kiể u thay đổ i mà cá c
user khá c khi mở mộ t Recordset .
Cò n kiể u locking xá c đị nh database sẽ xử lý trườ ng hợ p nhiề u user cố gắ ng
thay đổ i mộ t record trong cù ng mộ t lú c.
Để thự c hiệ n việ c nà y, đầ u tiê n bạ n tạ o mộ t thự c thể (instance) củ a đố i tượ ng
Recordset, sau đó sử dụ ng phương thứ c Open để mở mộ t Recordset.
Cú phá p
objRs .Open Source, ActiveConnection, CursorType, LockType, Options
vớ i cá c tham số :
Source: Mộ t đố i tượng Command, câ u lệ nh SQL, tê n bả ng hoặ c thủ tục lưu trữ
sẵ n(stored procedure).
ActiveConnection : Tê n củ a dt Connection đã được mở kế t nố i vớ i cơ sở dữ
liệ u cầ n là m việ c.
CursorType : Kiể u củ a con trỏ đượ c sử dụ ng khi mở Recordset. CursorType sử
dụ ng cá c kiể u cursor khi mở Recordset là :
AdOpenForwardOnly : (Mặ c đị nh)Vớ i tham số nà y bạ n chỉ có thể duyệ t
cá c record trong Recordset theo mộ t chiề u từ đầ u đế n cuố iù .
AdOpenKeyset : Recordset đượ c mở có khả nă ng cho phé p ta cậ p nhậ p
cá c record (xó a, thay đổ i) . Tuy nhiê n, nế u user khá c thê m mộ t record mớ i, record
nà y sẽ khô ng xuấ t hiệ n trong Recordset.
Tìm hiể u về ASP
Lưu hành nộ i bộ
76
AdOpenDynamic : Có thể duyệ t theo tấ t cả cá c chiề u (lê n, xuố ng) trong
Recordset. Phả n á nh tấ t cả nhữ ng thay đổ i (thê m và o, sử a đổ i, loạ i bỏ ) record
trong Recordset do user thự c hiệ n.
AdOpenStatic : Bạ n có thể duyệ t theo tấ t cả cá c chiề u (lê n, xuố ng) trong
Recordset. Khô ng phả n á nh tấ t cả nhữ ng thay đổ i record trong Recordset do user
thự c hiệ n.
LockType : Kiể u locking sử dụng khi mở Recordset. LockType sử dụ ng cá c
kiể u locking khi mở Recordset là :
adLockReadOnly : Mặ c đị nh. Khô ng thể thay đổ i cá c record trong
Recordset.
adLockOptimistic : Mộ t record chỉ bị lock (khó a) ngay sau khi thay đổ i dữ
liệ u trê n Recordset trê n data source.
adLockPessimistic : Mộ t record chỉ bị lock (khó a) khi bạ n gọ i phương thứ c
Update củ a Recordset .
adLockBatchOptimistic : Cá c record sẽ đượ c cậ p nhậ t theo bó (batch
update).
Options : Kiể u củ a query hoặ c bả ng đạ i diệ n bở i Source.
Ví dụ :
Cursor and Locking Example
Tìm hiể u về ASP
Lưu hành nộ i bộ
77
<%
Set objConn = Server.CreateObject(“ADODB.Connection”)
Set objRs = Server.CreateObject(“ADODB.Recordset”)
objConn.Open "DSN=student;uid=student;pwd=magic"
MySql=(“Select * From MyTable”)
objRs.Open Mysql,objConn, adOpenForwardOnly, adLockReadOnly,
adCmdText
objRs.close
set objRs=nothing
objConn.close
set objConn=nothing
%>
Sử a đổ i cá c record trong Recordset
Bạ n có thể sử dụ ng mộ t số phương thứ c củ a Recordset để sử a đổ i cá c record
trong mộ t Recordset.
Phương thứ c Mô tả
AddNew Thê m mộ t record mớ i và o Recordset.
Tìm hiể u về ASP
Lưu hành nộ i bộ
78
Close Đó ng lạ i đố i tượ ng Recordset và cá c đố i
tượ ng con củ a nó .
Delete Xoá record hiệ n hà nh trong Recordset.
Requery Thự c hiệ n lạ i query.
Update Lưu cá c thay đổ i trê n record hiệ n hà nh.
Ví dụ : sử dụ ng phương thứ c AddNew để thê m mộ t record và o Recordset
AddNew Database Example
<%
Set objConn = Server.CreateObject(“ADODB.Connection”)
Set objRs = Server.CreateObject(“ADODB.Recordset”)
objConn.Open "DSN=student;uid=student;pwd=magic"
MySql=(“Select Name From MyTable”)
objRs.Open Mysql,objConn, adOpenForwardOnly, adLockReadOnly,
adCmdText
objRs.AddNew(“Name”)=“David”
Tìm hiể u về ASP
Lưu hành nộ i bộ
79
objRs.Update
objRs.close
set objRs=nothing
objConn.close
set objConn=nothing
%>
Duyệ t cá c record trê n Recordset.
Đố i tượ ng Recordset bao gồ m mộ t số phương thứ c để dị ch chuyể n qua
cá c record trong mộ t Recordset, record mà nó dị ch chuyể n tớ i là record hiệ n hà nh.
Khi mở mộ t Recordset thì kiể u CursorType mặ c đị nh là adOpenForwardOnly nghĩ a
là chú ng ta chỉ có thể dị ch chuyể n về phía trướ c, cò n nế u muố n dị ch chuyể n quanh
mộ t Recordset thì ta cầ n mở Recordset vớ i kiể u CursorType là adOpenStatic (hoặ c
adOpenDynamic, adOpenKeyset).
Move : Dị ch chuyể n vị trí củ a record hiệ n hà nh.
MoveFirst : Dị ch chuyể n về record đầ u tiê n.
MoveLast : Dị ch chuyể n về record cuố i cù ng.
MoveNext : Dị ch chuyể n về record kế tiế p.
MovePrevious : Dị ch chuyể n về record trướ c đó .
Tìm hiể u về ASP
Lưu hành nộ i bộ
80
Khi ta đã có mộ t Recordset, để hiể n thị truy xuấ t tớ i mỗ i Recordset trong đó
ta có thể sử dụ ng cá c phương thứ c duyệ t như : MoveFirst, MoveLast , MoveNext ,
MovePrevious sẽ õ lấ y đượ c nộ i dung củ a record đầ u tiê n, cuố i cù ng, kế tiế p hay
record phía trướ c.
Khi sử dụng cá c phương thứ c để dị ch chuyể n cá c vị trí khô ng xá c đị nh. Nế u
record hiệ n hà nh là record là record cuố i cù ng trong Recordset thì khi gọ i phương
thứ c MoveNext thì sẽ gâ y ra lỗ i. Để trá nh trườ ng hợ p nà y thì ta sử dụ ng cá c
property củ a Recordset như BOF, EOF để xá c đị nh record hiệ n hà nh là đầ u tiê n
hay là cuố i cù ng. Cá c property nà y có ý nghĩ a như sau:
BOF property có giá trị TRUE nghĩ a là con trỏ đang ở vị trí đầ u Recordset,
khi Recordset mớ i đượ c mở thì BOF luô n có giá trị nà y.
EOF property có giá trị TRUE nghĩ a là con trỏ đang ở vị trí cuố i cù ng củ a
Recordset.
Nế u khô ng có record nà o trong Recordset thì cả BOF lẫ n EOF đề u là TRUE.
Ví dụ : sử dụ ng mộ t vò ng lặ p và phương thứ c MoveNext để duyệ t cá c record
trong Recordset.
AddNew Database Example
<%
Tìm hiể u về ASP
Lưu hành nộ i bộ
81
Set objConn = Server.CreateObject(“ADODB.Connection”)
Set objRs = Server.CreateObject(“ADODB.Recordset”)
objConn.Open "DSN=student;uid=student;pwd=magic"
MySql=(“Select Name From MyTable”)
objRs.Open Mysql, objConn, adOpenDynamic, adCmdText
objRs.MoveLast
Do While Not objRs.BOF
Response.Write “” & objRs(“Name”)
objRs.MovePrevious
Loop
objRs.Close
set objRs=Nothing
objConn.Close
set objConn=Nothing
%>
Lưu ý :
BOF và EOF có cá c điể m sau:
Tìm hiể u về ASP
Lưu hành nộ i bộ
82
• Nế u Recordset khô ng chứ a record nà o khi bạ n mở nó cả BOF và EOF là
TRUE.
• Khi BOF và EOF là TRUE, thuộ c tính vẫ n cò n là TRUE cho đế n khi bạ n
di chuyể n tớ i mộ t record đang tồ n tạ i, ở thờ i điể m nà y giá trị BOF hay EOF sẽ
trở thà nh FALSE.
• Khi BOF hay EOF là FALSE và record duy nhấ t trong recordset bị xó a,
thuộ c tính vẫ n giữ FALSE cho tớ i khi bạn cố di chuyể n tớ i 1 record khá c, ở thờ i
điể m nà y cả BOF và EOF trở thà nh TRUE.
• Và o lú c bạ n tạ o hay mở mộ t Recordset có chứ a ít nhấ t mộ t record ,
record đầ u tiê n là record hiệ n hà nh và cả BOF và EOF là FALSE.
,
File đính kèm:
Tìm hiểu về ASP.pdf

