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