Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (408.56 KB, 82 trang )
<span class='text_page_counter'>(1)</span>Tìm hieå u veà ASP. 1. I.Active Server Pages (ASP) laø gì ?. 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 cá c ứ ng dụ ng Web mạ nh chứ a cá c thẻ HTML, vă n bả n và cá c lệ nh script hay cá c ứ ng dụ ng Web độ ng , giao tiế p giữ a Client và server mộ t cá ch hiệ u quả . Cá c trang ASP có thể gọ i cá c thà nh phầ n ActiveX để thự c hiệ n cá 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 có thể đưa nộ i dung tương tá c vớ i cá c trang Web củ a bạ n hoặ c xâ y dự ng toà n bộ cá c ứ ng dụ ng Web sử dụ ng cá c trang HTML như giao tiế p vớ i khá ch hà ng cuû a baï n.. z Trang ASP:. Moã i trang .asp coù theå bao goà m moä t trong caù c thaø nh phaà n sau: HTML, Scrip củ a ngô n ngữ VB Scrip hoặ c Jscrip, Text trong đó cá c tag HTML và Text sẽ đượ c xử lý bình thườ ng như đố i vớ i cá c vă n bả n HTML (.html) thô ng thườ ng, cá c script sẽ đượ c mộ t bộ phận (engine) củ a ASP thô ng dị ch và thi hà nh trê n server .Coù theå xem trang ASP nhö moä t trang HTML coù boå sung caù c ASP Script Command z Hoạ t độ ng củ a trang ASP:. Sau khi mô i trườ ng ASP thự c hiệ n việ c thự c thi cá c file .asp xong nó sẽ trả lạ i kế t quả ở dạ ng HTML cho Web Server, tiế p theo Browser sẽ nhận đượ c nộ i dung cầ n trình bà y từ Web Server thô ng qua giao thứ c HTTP. Mộ t trang ASP cũ ng sẽ đượ c Brower tham khả o tớ i bình thườ ng như là nó đã tham khả o tớ i mộ t trang HTML củ a Web.. XXXXX XXXXX YYYYY YYYYY. XXXXX XXXXX ZZZZZZ ZZZZZZ Browser. Web Server. X:HTML Y:ASP script Z:ASP Script result(HTML). Trang Asp khi ở trê n Web Server và khi đượ c đưa ra Browser Löu haønh noä i boä.
<span class='text_page_counter'>(2)</span> Tìm hieå u veà ASP. 2. z Sơ đồ một ứ ng dụ ng trê n Web ASP:. Web Server : là nơi tiế p nhậ n và trả lờ i cá c yê u cầ u củ a Web user, đồ ng thờ i cũ ng thự c hiệ n việ c kế t nố i đế n hệ DBMS trê n Database Server theo yê u cầ u truy cậ p dữ kiệu củ a trang ASP. ADO cung cấ p giao diệ n lậ p trình cho ngườ i phát triễ n xây dự ng cá c lệ nh truy cậ p CSDL, cá c lệ nh nà y đượ c chuyể n đế n cho hệ DBMS để thự c thi thô ng qua cá c thà nh phầ n OLE DB (và ODBC). Kế t quả truy vấ n dữ liệ u sẽ đượ c Web Server đưa ra hiể n thị treâ n Browser. Database Server: nơi diễ n ra việ c thự c thi cá c thao tá c CSDL như truy vấ n, cậ p nhậ t cũ ng như bà o đả m tính toà n vẹn dữ liệ u củ a hệ DBMS. Browser: giao diệ n vớ i ngườ i dù ng, tiế p nhậ n cá c yê u cầ u củ a ngườ i sử dụ ng cuõ ng nhö hieå n thò keá t quaû yeâu caà u.. Web Browser. ASP. ADO. OLEDB. ODBC. Web Server. DMS (SQL server). Database Server. SƠ ĐỒ MỘ T Ứ NG DỤ NG TRÊ N WEB z Moä t vaø i ñaë c ñieå m cuû a ASP:. - Việ c chè n cá c Scrip và o file HTML là m cho quá trình xử lý tạ o ra vă n bả n HTML ( Dynamic Pages ) đồ ng thờ i vớ i việ c xử lý cá c Script , điề u bà y sẽ Löu haønh noä i boä.
<span class='text_page_counter'>(3)</span> 3. Tìm hieå u veà ASP. là m cho hoạ t độ ng củ a trang Web sẽ trở nê n linh độ ng hơn , uyể n chuyể n hôn. - Cá c file .asp cũ ng tương thích vớ i file HTML, và việ c viế t cá c scrip đơn giả n , khô ng phả i biê n dị ch hay liê n kế t như việ c lậ p trình thô ng thườ ng, ASP cung cấ p cá c đố i tượ ng tiệ n lợ i cho nhiề u thao tá c như: Request , Response , Server , Apllication , Session. Cá c đố i tượ ng có sẵ n nà y củ a mô i trườ ng ASP sẽ giú p cho việ c giao tiế p dữ liệ u giữ a Client và Server thự c sự tiệ n lợ i, cũ ng như việ c quả n lý ứ ng dụng mộ t cách linh hoạ t nhờ vào cá c bieá n Session, Application.. II Caù c thaø nh phaà n & cuù phaù p ASP : ASP bao goà m caù c thaø nh phaà n sau : 1. Cá c bộ dị ch ngô n ngữ VBScript và Jscript . 2 .Thư việ n cá c đối tượ ng, chuyê n dùng để truy xuấ t Database thô ng qua ODBC Driver (Active Server Data Object – ADO).Thư việ n cá c đố i tượ ng hỗ trợ cho việ c viế t các trang ASP . Mộ t file ASP thự c chấ t là mộ t vă n bản, nó có thể bao gồ m cá c thành phầ n sau: +Vaê n Baû n (Text) + Caù c HTML tag + Cá c Script . Mỗ i Script nà y sẽ thự c hiệ n mộ t cô ng việ c nà o đó , giố ng như cá c phá t biể u củ a mộ t ngô n ngữ lập trình. Mộ t Script là mộ t chuỗ i caù c leä nh script, noù coù theå laø : 1. Moä t pheù p gaù n giaù trò cho moä t bieá n 2. Mộ t yê u cầ u Web server gử i thô ng tin đế n Brower . 3. Tổ hợ p cá c lệ nh riê ng rẽ thà nh mộ t thủ tụ c hay mộ t hà m giố ng như trong cá c ngô n ngữ lậ p trình. Việ c thi hà nh mộ t script là quá trình gử i chuỗ i cá c lệ nh tớ i Scripting Engine, tạ i đâ y ASP sẽ thô ng dị ch cá c lệ nh nà y và chuyể n tiế p cho má y tính. Script được viế t bằ ng mộ t ngô n ngữ vớ i các luậ t được đặ t tả nào đó , nế u ta muố n sử dụ ng mộ t script language nà o thì trê n server phả i chạ y Script Engine cho ngô n ngữ đó . Trong ASP cung cấ p hai Script Engine là VBScript và Jscript ( vớ i VBSCRIPT là mặ c nhiê n). Tuy nhiê n ASP khô ng phả i là ngô n ngữ Script , mà nó chỉ cung cấ p mộ t Löu haønh noä i boä.
<span class='text_page_counter'>(4)</span> 4. Tìm hieå u veà ASP. mô i trườ ng để xử lý cá c Script mà ta chè n và o trong cá c file .asp , việ c chè n nà y phaû i tuaâ n theo moä t cuù phaù p nhaá t ñò nh cuû a ASP. Cuù phaù p 1.Daá u ngaê n caù ch (Delimiter): Trong vă n bả n ASP ta sử dụ ng cá c dấ u <% và %> để ngă n cách phầ n vă n bả n HTML vớ i phầ n Script , hay cụ thể là bấ t cứ mộ t phá t biể u Script nà o cũ ng đề u phả i nằ m giữ a hai ngă n cá ch <% và %> Ví duï : <% say = "Hello" %> là mộ t script thự c hiệ n việ c gá n chuỗ i Hello và o bieá n say ♦ Biể u thứ c đơn : Bạ n cầ n đưa và o(include) bê n trong dấ u ngă n cách ASP nhiề u biể u thứ c cho ngô n ngữ scripting đầ u tiê n. Ví dụ , vớ i dò ng sau là kế t quả cuố i cù ng củ a vă n bản vớ i thờ i gian hiệ n hành củ a server : This page was last refeshed at<% =now %> Trong trườ ng hợ p nà y , Web server trả về giá trị now củ a hàm VBScript từ browser vớ i text . 2.Caâ u leä nh (Statement): Mộ t câ u lệ nh trong VBScript hay trong ngô n ngữ script khá c là mộ t cấ u trú c dù ng để thự c hiệ n mộ t thao tá c, câ u lệ nh phả i đượ c khai bá o hoặ c đị nh nghĩ a trong ngô n ngữ scripting. Cá c ngô n ngữ script trong ASP cung cấ p cho ta haà u heá t caùc caá u truù c ñieà u khieå n : IF…ELSE, For, While, DO WHILE… cuø ng. Löu haønh noä i boä.
<span class='text_page_counter'>(5)</span> 5. Tìm hieå u veà ASP. vớ i nhữ ng kiể u dữ liệ u cơ bả n như integer , char, string, Array …sau sử dụ ng Ví dụ : sử dụ ng câ u lệ nh If củ a VBScript <% if Time >=#12:00:00 AM# And Time < #12 :00:00 PM# then greeting ="Good Morning!"; else greeting ="Hello!"; end if %> dò ng sau sẽ gở i giá trị trong Green tơí Client browser <FONT COLOR= "Green"> <%=greeting%> </FONT> 3.SCRIPT tag: Cá c phá t biể u , biể u thứ c , lệ nh, hay thủ tụ c mà bạ n sử dụ ng bê n trong hai dấ u ngă n cá ch <% và %> phả i đượ c nhìn nhậ n bở i ngô n ngữ Script mặ c đị nh hoặ c ngô n ngữ Script đượ c khai bá o ở đầ u trang ASP. Ngô n ngữ scripting mặ c đị nh củ a ASP là VBScript , tuy nhiê n vớ i ASP ta vẫ n có thể sử dụ ng cá c ngô n ngữ lậ p trình khá c bê n trong bằ ng cá ch sử dụ ng thẻ <SCRIPT> và </SCRIPT> Ví du: <SCRIPT LANGUAGE="JSCRIPT"> <!-- hide Script from old browsers for(i=0;i<10;i++ ) Löu haønh noä i boä.
<span class='text_page_counter'>(6)</span> 6. Tìm hieå u veà ASP. docoment.write("for loop"+ i+"<br>") docoment.write("second line of for loop"+ i+"<br>") //end script hiding--> </SRIPT> </BODY> </HTML> trong file ASP sau xử lý JScript trong hà m MyFunction <HTML > <BODY> <%Call MyFunction %> </BODY> </HTML>. <SCRIPT RUNAT=SERVER LANGUAGE=JSCRIPT> function MyFunction () { Response.Write("MyFunction Called") } </SCRIPT> Chuù yù : beân trong tag <SCRIPT></SCRIPT> phaû i laø caù c thuû tuï c,khoâ ng coù moä t biể u thứ c xuấ t hay phá t biể u nà o nằ m bê n ngoà i các thủ tụ c. 4.Include file: Khi tạ o mộ t ứ ng dụng Web, bao gồ m nhiề u trang ASP, nế u như tò an bộ cá c trang đề u cầ n sử dụng nhữ ngthô ng tin chung nà o đó chẳ ng hạ n như cá c hằ ng,giá trị …để trá nh lạ i việ c đị nh nghĩ a lạ i cá c giá trị nà y ta có thể sử dụ ng cơ chế include Löu haønh noä i boä.
<span class='text_page_counter'>(7)</span> 7. Tìm hieå u veà ASP. file củ a ASP (giố ng như trong ngô n ngữ lậ p trình cổ điể n).Để include mộ t file trong trang ASP ta sử dụ ng cú phá p sau: <!--#include Virtual/File="filename" -- > Ví duï : <!--#include Virtual="whatever.asp"-- > Bạ n phả i đị nh nghĩ a kiể u Virtual hoặ c file Trong đó qui đị nh file đượ c include phả i có phầ n mở rộ ng là .inc hoặ c .asp , phầ n filename bao gồ m cả đường dẫ n và tê n file. ¾ sử dụ ng từ khó a virtual: Tham số Virtual dù ng để chỉ đị nh rằ ng đườ ng dẫ n đượ c bắ t đầ u vớ i mộ t thư muï c aû o(Virtual Directory) Vd: <!--# include virtual = " /whatever.asp" -- > Seõ include baá t kyø taä p naø o treâ n site cuû a baï n(whatever laø naè m treâ n thö muï c gố c củ a web server) nhưng bạn phả i cung cấ p tê n tậ p tin vớ i 1 đườ ng dẫ n ¾sử dụ ng từ khó a file Tham số file dù ng để chỉ đị nh đườ ng dẫ n Relative,đượ c bắ t đầ u vớ i tên thư mụ c chứ a file cầ n include.Chẳ ng hạ n nế u bạ n có 1 file trong thư mụ c myapp và file header1.inc trong myapp/header , doø ng sau seõ cheø n header1.inc vaø o trong file cuû a baï n . <!--#include file ="header/header1.inc"--> Chú ý rằ ng đườ ng dẫ n để include file headers / header1.inc thì có liên quan đế n việ c include file , nế u nội dung củ a script nà y có cú pháp include là thư mụ c /myapp, cú phá p sẽ khô ng hoạt độ ng . ASP includes files trướ c khi thự c thi lệ nh script.Vì thế , bạ n khô ng thể sử dụ ng mộ t lệ nh script để xâ y dự ng tê n củ a 1 file include.chẳ ng hạ n script sau khô ng thể. Löu haønh noä i boä.
<span class='text_page_counter'>(8)</span> 8. Tìm hieå u veà ASP. mở file Header1.inc bở i vì ASP chiế m để thự c thi chỉ thị include trướ c khi gá n mộ t teâ n file cho giaù trò name <!-- This script will fail --> <% name=(header1 & ".inc") %> <!--#include file="<%= name %>"--> Lệ nh script và thủ tục phả i hoà n toà n bao hà m dấ u ngă n cá ch<% và %> trong script,tag HTML <SCRIPT> và </SCRIPT> hoặ c tag HTML <OBJECT>vaø </OBJECT>. ¾sử dụ ng server script: Để bổ sung 1 client Script,mặ c dù ASP sử dụ ng Script server site để xử lý vă n bả n,bạ n có thể mở rộ ng bằ ng cá ch sử dụ ng nó để phá t sinh ra client side script sau đượ c xử lý bở i client browser.ASP là m điề u nà y bằ ng cá ch kế t hợ p client_side script bao gồ m nhữ ng chú thích HTML củ a server _side script và bao gồ m cả dấu ngaê n caù ch: <SCRIPT LANGUAGE="VBScript"> <!-client script <% server script %> client script <% server script %> client script ... --> </SCRIPT>. Löu haønh noä i boä.
<span class='text_page_counter'>(9)</span> 9. Tìm hieå u veà ASP. Vớ i chứ c nă ng trong scripts củ a bạ n, bạn có thể tạo ra 1 ứ ng dụ ng thú vị . Chẳ ng hạn script sau sử dụ ng mộ t database để cung cấ p mẫu tin script client như là kế t quả hà nh độ ng củ a user. Trong Script sau ASP tìm dữ liệ u từ Database và phá t ra mỗ i chương trình con cho mỗ i dò ng dữ liệu. Chương trình con đó điề u khiể n cá i gì xả y ra khi 1 user click vaø o lieâ n keá t trong trang hieå n thò trong client browser Chuù yù : Trong script nà y sẽ khô ng có hà m củ a chính bả n thâ n nó .Nó cho thấ y ở đâ y chỉ minh họ a chứ c nă ng củ a ASP nế u sử dụ ng trang liê n kế t vớ i Database,serverside scripting và client-side scripting. Löu yù : • Việ c include file có thể gâ y nê n mộ t vò ng lặ p nế u file đượ c include lạ i gọ i include mộ t file khá c ,hay file ban đầ u. • Vì Asp sẽ include file trướ c khi xử lý cá c Script cho nê n ta khô ng thể sử dụ ng mộ t lệ nh mà lệ nh nà y lạ i tạo ra mộ t lờ i gọ i include, hoặ c sử duï ng include nhö sau laø sai: <% name =(header1&".inc")%> <!--#include file ="<%=nameù >"-- >. • Ta cũ ng khô ng thể mở dấ u <% trong mộ t file include và đóng %> trong moä t file include khaù c.ví duï sau laø sai: <!-- This script will fail --> <%For i = 1 To n statements in main file <!--#include file="header1.inc" --> Löu haønh noä i boä.
<span class='text_page_counter'>(10)</span> 10. Tìm hieå u veà ASP. Next %> Script sau sẽ hoạ t động đượ c: <!-- This script would work--> <% For i = 1 to n statements in main file %> <!--#include file="header1.inc" --> <% Next %>. III.CÁ C ĐỐ I TƯỢ NG CƠ BẢ N CỦ A ASP: ASP cung cấ p cho ngườ i lậ p trình cá c đối tượ ng có sẵ n, mỗ i đố i tượ ng nà y sẽ thự c hiệ n mộ t chứ c nă ng riê ng nà o đó , cá c đố i tượ ng có sẵn(built-in oject) bao goà m: Tê n đố i tượ ng. Chứ c nă ng. Request. Lấ y thô ng tin từ mộ t user. Respone. Gử i thô ng tin tớ i mộ t user. Server. Điề u khiể n mô i trườ ng hoạ t động củ a ASP. Session. Lưu giữ thô ng tin về mộ t session củ a user. Application. Chia sẻ thô ng tin giữ a cá c user trong cù ng mộ t ứ ng duï ng.. III.1.Đố i tượ ng Request. Vớ i đố i tượ ng Request ,cá c ứng dụ ng ASP có thể dễ dà ng lấ y đượ c thô ng tin gử i tớ i từ user Löu haønh noä i boä.
<span class='text_page_counter'>(11)</span> 11. Tìm hieå u veà ASP. Đố i tượ ng Request cho phé p truy xuấ t chi tớ i bấ t kỳ thô ng tin nà o user gử i tớ i bằ ng giao thứ c HTTP như: 1. Caù c thoâ ng tin chuaå n naè m trong caù c bieá n Server (Variable Server) 2. Cá c tham số đượ c gử i tớ i bằng phương thứ c POST 3 .Cá c thô ng tin được gử i tớ i bằ ng phương thứ c GET 4. Cá c cookies( là thô ng tin củ a user được gử i kè m theo) tớ i từ Browser 5. Caù c Client Certificates Đố i tượ ng Request tìm kiế m cá c giá trị mà client browser đưa và o server trong khi coù moä t yeâ u caà u HTTP Cuù phaù p: Request.collection|property|method Collections Cookies. Giá trị của cá c cookie gở i trong yê u cầ u HTTP. Form. Giá trị cá c phầ n tử form trong thâ n củ a yê u cầ u HTTP. QueryString. Giaù trò cuûa caù c bieá n trong trong chuoã i truy vaá n HTTP. ServerVariables Properties TotalBytes. Giá trị của cá c biế n mô i trườ ng đã đượ c xá c đị nh trướ c Tổ ng số byte client đang gở i trong thâ n củ a yê u cầ u. Cá c tham số biế n là chuỗ i ký tự chỉ rõ mụ c (item) đượ c tìm kiế m từ một collection hoặ c đượ c sử dụ ng như là mụ c và o đố i vớ i mộ t phương thứ c (method) hoặ c mộ t property Ghi chuù : Tấ t cả cá c biế n có thể đượ c truy cậ p mộ t cá ch trự c tiế p bằ ng cá ch gọ i cú phá p Request(variable) mà khô ng cầ n tê n collection.Trong trườ ng hợ p nà y, Web server tìm kiế m cá c collection theo thứ tự sau: Löu haønh noä i boä.
<span class='text_page_counter'>(12)</span> 12. Tìm hieå u veà ASP. 1. QueryString 2. Form 3. Cookies 4. ClientCertificate 5. ServerVariables. 1 . Là m việ c vớ i cá c HTML FORM Sử dụ ng đố i tượ ng Request ,bạn có thể tạo và xử lý thô ng tin vớ i HTML FORM., HTLM FORM là cá ch thứ c thô ng thườ ng để trao đổ i thô ng tin giữ a Web server vaø user, noù cung caá p nhieà u caù ch nhaä p thoâ ng tin cuû a user : Text boxes, Buttons, Check boxes cho phé p user tương tá c vớ i trang Web và Submit thô ng tin tớ i mộ t Web Server. Ví dụ : Tạo mộ t FORM để user có thể nhậ p và o họ tê n,tuổ i và đưa và o mộ t nút để submit thô ng tin tớ i Web server. FORM cũ ng chứ a mộ t điều khiể n hidden để đưa thê m thô ng tin tớ i Web server. <FORM METHOD="POST" ACTION="myfile.asp"> <INPUT TYPE="text" NAME="firstname"> <INPUT TYPE="text" NAME="lastname"> <INPUT TYPE="text" NAME="age"> <INPUT TYPE="hidden" NAME="userstatus" VALUE= "new"> <INPUT TYPE="submit" VALUE="Enter"> </FORM> III.2Xử lý FORM nhậ p và o vớ i ASP. Khi mộ t FORM submit thô ng tin tớ i Web server,Web browser củ a user yê u caà u file.asp chæ ñò nh trong thuoä c tính ACTION cuû a theû HTML <FORM>. File.asp chứ a đoạ n script thực hiệ n việ c xử lý giá trị FORM như hiể n thị mộ t bảng nộ i dung. Löu haønh noä i boä.
<span class='text_page_counter'>(13)</span> 13. Tìm hieå u veà ASP. kế t quả hoặ c truy vấ n thô ng tin từ mộ t cơ sở dữ liệ u.Bạ n có thể sử dụ ng file .asp để thu thậ p giá trị HTML FORM mộ t trong 3 cá ch: y File.html chứ a cá c form và submit giá trị củ a nó tớ i mộ t file.asp. y File.asp có thể tạ o form và chuyể n giá trị tớ i mộ t file asp khá c. y File.asp có thể tạ o form và gử i thô ng tin tớ i chính nó đó là đế n file.asp mà chứ a đự ng form. III.3 Laá y thoâ ng tin nhaä p vaø o FORM. Sử dụ ng QueryString Collection QueryString collection laá y laï i caù c giaù trò form ñöa vaø o Web server củ a bạ n như là mộ t chuỗ i sau sau mộ t dấ u ? trong yê u cầ u URL. Việ c sử dụ ng Querystring collection là m cho việ c truy xuấ t thô ng tin trở nê n dễ dà ng hơn Cuù phaù p Request.QueryString(variable)[(index)|.Count] Caù c tham soá variable teâ n cuû a bieá n trong chuoã i query HTTP. index Cho pheù p baï n truy vaá n moä t trong caù c giaù trò cho variable.Noù coù theå laø baá t kỳ số nguyê n nà o trong khoả ng từ 1 tớ i Request.QueryString(variable).Count. ♦ Nế u phương thứ c gở i từ form là POST thì Querystring chứ a tấ t cả thô ng tin gử i tớ i như là 1 tham số sau trang URL. ♦ Nế u phương thứ c gở i từ form là GET thì Querystring Collection chứ a toà n bộ thô ng tin gử i tớ i như là cá c tham số đi đằng sau dấ u “?” trong URL . Như vậ y nế u phương thứ c là GET thì toà n bộ thô ng tin gở i tớ i sẽ nằ m trong Querystring Collection. Löu haønh noä i boä.
<span class='text_page_counter'>(14)</span> 14. Tìm hieå u veà ASP. Ví dụ : nế u ví dụ trướ c đó sử dụ ng phương thứ c GET(ACTION= “GET”) và ngườ i sử dụ ng gõ và o Jeff, Smith, và 30 ,sau đó yê u cầ u URL sẽ đượ c gở i tớ i server là : http://scripts/Myfile.asp?firstname=Jeff&lastname=Smith&age=30&userstatus=ne w Myfile.asp có thể chứ a đoạ n script xử lý như sau: Hello, <%= Request.QueryString("firstname") %> <%= Request.QueryString("lastname") %>. You are <%= Request.QueryString("age") %> years old. <% If Request.QueryString("userstatus") = "new user" then Response.Write"This is your first visit to this Web site!" End if %> Trong trườ ng hợ p nà y,Web sever củ a bạ n sẽ trả về đoạ n vă n bả n sau tớ i Web browser cuû a user: Hello, Jeff Smith. You are 30 years old. This is your first visit to this Web site! Khi coù nhieà u bieá n cuøng moä t teân vaø moã i bieá n coù giaù trò khaù c nhau.Khi đó , QueryString collection có mộ t tham số dù ng để truy cậ p nhiề u giá trị xuấ t hiệ n trong thâ n củ a yê u cầ u.Bạ n có thể sử dụng đặ c tính Count để đế m số lầ n maø moä t kieå u ñaë c tröng giaù trò xuaá t hieä n . Ví dụ :mộ t FORM chứ a mộ t list box vớ i nhiề u mụ c có thể trả lạ i như sau: ?food=apples&food=olives&food=bread Để hiể n thị nhiề u kiể u giá trị , List.asp có thể chứ a đoạ n script sau: <%Total = Request.QueryString("food").Count%> <%For i = 1 to Total%> <%= Request.QueryString("food")(i) %> <BR> <%Next%> vaø keá t quaû hieå n thò laø : apples olives bread. Löu haønh noä i boä.
<span class='text_page_counter'>(15)</span> 15. Tìm hieå u veà ASP. III.4.Sử dụ ng Form Collection. Form collection chứ a toà n bộ cá c giá trị mà user nhậ p và o FORM sau đó gử i bằng phương thứ c POST. Phương thứ c POST gở i dữ liệu FORM trong thâ n yê u cầ u HTTP,có thể gở i khô ng giớ i hạ n số ký tự tớ i server Cuù phaù p Request.Form(element)[(index)|.Count] Caù c thamsoá element tê n củ a phầ n tử form collection cầ n truy vấ n. index Mộ t thamsố lự a chọn cho phé p bạ n truy vấ n mộ t trong cá c giá trị đố i vớ i mộ t thamsố .Nó có thể là bấ t kỳ số integer nằ m trong vù ng từ 1 đế n Request.Form(thamsoá ).Count. Ghi chuù Form collection đượ c chỉ mục bở i tê n trong thâ n củ a yê u cầ u. Giá trị củ a Request.Form(element) laø moä t daõ y cuû a taá t caû caù c giaù trò cuûa element xuaá t hieä n trong thaâ n cuû a yeâ u caà u.Baï n coù theå xaù c ñò nh soá giaù trò cuû a moä t thamsoá baè ng caù ch goï iRequest.Form(element).Count. Để tham khả o mộ t giá trị đơn củ a mộ t phầ n tử form có nhiề u giá trị ,bạ n phả i chỉ đị nh mộ t giá trị cho index.Thamsố index có thể là bấ t kỳ số nà o giữ a 1 và Request.Form(element).Count. Ví duï : neá u user ñieà n vaø o FORM baè ng caù ch ñöa vaø o moä t danh saù ch teâ n thì baïn coù thể lấ y lạ i cá c tê n vớ i đoạ n script sau: <% For i = 1 to Request.Form.Count %> <% =Request.Form("names")(i) %> <% Next %> Löu haønh noä i boä.
<span class='text_page_counter'>(16)</span> 16. Tìm hieå u veà ASP. 2.Sử dụ ng ServerVariables collection ServerVariables collection lấ y lạ i cá c giá trị cá c biến mô i trườ ng đã được xá c đị nh trướ c.. ServerVariables cung cấ p thô ng tin từ tiê u đề HTTP vớ i mộ t yeâ u caà u cuû a user . Cuù phaù p Request.ServerVariables (server environment variable) Tham soá server environment variable: là tê n củ a biế n mô i trườ ng. Bạ n có thể sử dụ ng vò ng lặ p để lặ p thô ng qua tê n cá c biế n server.Ví dụ ,đoạ n script sau sẽ in ra tấ t cả cá c giá trị củ a cá c biế n mô i trườ ng trong mộ t bả ng. <TABLE> <TR><TD><B>ServerVariable</B></TD><TD><B>Value</B></TD></TR> <% For Each name In Request.ServerVariables %> <TR><TD><%=name%> </TD> <TD> <%= Request.ServerVariables(name) %> </TD> </TR> </TABLE> <% Next %> Ví dụ :sử dụ ng đố i tượ ng Request để hiển thị mộ t số biế n môi trườ ng . <HTML> <!-- This example displays the content of several ServerVariables. --> ALL_HTTP server variable = <%= Request.ServerVariables("ALL_HTTP") %> <BR> CONTENT_LENGTH server variable = <%= Request.ServerVariables("CONTENT_LENGTH") %> <BR> Löu haønh noä i boä.
<span class='text_page_counter'>(17)</span> 17. Tìm hieå u veà ASP. CONTENT_TYPE server variable = <%= Request.ServerVariables("CONTENT_TYPE") %> <BR> QUERY_STRING server variable = <%= Request.ServerVariables("QUERY_STRING") %> <BR> SERVER_SOFTWARE server variable = <%= Request.ServerVariables("SERVER_SOFTWARE") %> <BR> </HTML>. Ví dụ : sử dụ ng ServerVariables collection để chèn tê n server và o trong mộ t sieâ u lieâ n keá t (hyperlink). <A HREF = "http://<%= Request.ServerVariables("SERVER_NAME") %> /scripts/MyPage.asp">Link to MyPage.asp</A>. III.5.Gử i thô ng tin trong cù ng mộ t file.asp:. - Vớ i ASP bạ n phả i đị nh nghĩ a độ ng 1 form trong 1 file.asp mà đặ t giá trị đầ u và o trả lạ i chính bả n thâ n nó . - ASP cho phé p mộ t file.asp có chứ a From, khi user điề u khiể n cá c giá trị và o From rồ i gử i (Submit) thì chính file.asp sẽ nhận đượ c cá c thamtin nà y và xử lyù . III.6.Đố i tượ ng Response. Bạ n có thể sử dụ ng đố i tượ ng Response để gở i kế t xuấ t tớ i client. Cuù phaù p Response.collection|property|method Collections Cookies. Chæ ñò nh giaù trò cookie vaø thieá t laä p caù c giaù trò Löu haønh noä i boä.
<span class='text_page_counter'>(18)</span> 18. Tìm hieå u veà ASP. cookie .. Properties Buffer ContentType. Expires. Chỉ ra liệ u trang kế t xuấ t đượ c đệ m hay khô ng. Chæ ñò nh kieå u noä i dung HTTP(vd:”Text/HTML”) khi đá p ứ ng. Chỉ đị nh thờ i gian trướ c khi mộ t trang lưu trữ trê n browser keá t thuù c.. Status. Server traû veà giaù trò cuû a traï ng thaù i doø ng .. Methods AddHeader. Thiế t lậ p tê n (name) tiê u đề HTML bằ ng giá trị (value).. Clear End. Hủ y bỏ vùng đệ m kế t xuấ t HTML. Dừ ng xử lý tậ p tin .asp và gở i trả kế t quả hiệ n haø nh.. Redirect Write. Chỉ dẫ n browser kế t nố i tớ i một URL khá c. Xuấ t mộ t biế n tớ i trang hiệ n hà nh như là mộ t chuoã i.. III.6.1 Gở i nộ i dung Để gở i trở lạ i mộ t trang chứ a vă n bả n,hình ả nh và cá c nộ i dung khá c tớ i browser bê n trong dấ u ngă n cá ch ASP hoặ c từ một thủ tụ c. Sử dụ ng phương thứ c Write củ a đố i tượ ng Response. Cuù phaù p Response.Write variant Löu haønh noä i boä.
<span class='text_page_counter'>(19)</span> 19. Tìm hieå u veà ASP. Tham soá variant Dữ liệ u để xuấ t. Tham số nà y có thể là bấ t kỳ dữ liệ u nà o mà ngô n ngữ script hổ trợ (kể cả các ký tự ,chuỗ i,số nguyê n). Ví dụ 1: câ u lệ nh gở i lờ i chà o khá c nhau tớ i user tù y thuộ c vào user đã viế ng thă m trang trướ c đó bao nhiê u lầ n : <% If FirstTime = True Then Response.Write "<H3 ALIGN=CENTER>Welcome to the Overview Page</H3>" Else Response.Write "<H3 ALIGN=CENTER>Welcome Back to the Overview Page</H3>" End If %> Bê n ngoà i mộ t thủ tụ c, bạ n khô ng cầ n phả i sử dụ ng phương thứ c Response.Write để gở i nộ i dung trở lạ i tớ i user.Nộ i dung nà y thì khô ng nằ m trong dấ u ngă n cá ch scripting mà đượ c gở i trực tiế p tớ i browser . Ví dụ 2: đoạ n script sau sẽ có kế t xuấ t như đoạ n script trướ c : <H3 ALIGN=CENTER> <% If FirstTime Then %> Welcome to the Overview Page. <% Else %> Welcome Back to the Overview Page. <% End If %> </H3> III.6.2Gở i cookie tớ i browser Mộ t Cookie đượ c coi như mộ t dấ u hiệ u đi kè m theo ngườ i sử dụ ng trong quá trình trao đổ i thô ng tin giữ a Client browser và Web server hoặ c giữ a Web. Löu haønh noä i boä.
<span class='text_page_counter'>(20)</span> 20. Tìm hieå u veà ASP. server và Client browser . Cookies cung cấ p cho 1 kiể u củ a thamtin từ sự giao kế t vớ i ngườ i sử dụ ng Cá c script củ a ASP có thể sử dụ ng Cookies collection để thiế t lậ p giá trị củ a mộ t Cookie. Khi dù ng Response.Cookies nế u cookie được đặ c tả chưa tồ n tạ i thì nó sẽ đượ c tạ o mớ i, nế u Cookie đã tồ n tạ i thì nó sẽ lấ y giá trị mớ i, giá trị cũ sẽ bị loạ i bỏ . Cuù phaù p: Response.Cookies(cookie)[(key)|.attribute] = value. Caù c tham soá cookie Teâ n cuû a cookie. key Tham số lự a chọ n.Nế u key đượ c chỉ đị nh, cookie là mộ t từ điể n và key thì thieá t laä p giaù trò (value). attribute Chỉ đị nh thô ng tin về cookie đó .Cá c thuộ c tính có thể là : Teâ n Domain. Expires HasKeys. Moâ taû Nế u chỉ định, cookie chỉ đượ c gở i tớ i yêu cầ u củ a vù ngs domain đó. Ngaø y cookie keá t thuù c. Cookie seõ keá t thuù c khi session keá t thuù c. Chỉ đị nh cookie chứ a cá c khó a hay khô ng. Löu haønh noä i boä.
<span class='text_page_counter'>(21)</span> 21. Tìm hieå u veà ASP. Nế u chỉ định,cookie chỉ đượ c gở i yê u cầ u tớ i đườ ng dẫ n Path. nà y.Nế u khô ng,đườ ng dẫ n củ a chương trình ứ ng dụng đượ c duø ng .. Secure. Chỉ đị nh có đượ c bả o đả m hay khô ng.. Value Giá trị để gá n và o key hoặ c attribute. Ví duï : baï n coù theå thieá t laä p giaù trò cho moä t cookie vaø gaù n caù c giaù trò vaø o caù c thuoä c tính (attribute) cuû a noù <% Response.Cookies("Type") = "Chocolate Chip" Response.Cookies("Type").Expires = "July 31, 1997" Response.Cookies("Type").Domain = "msn.com" Response.Cookies("Type").Path = "/www/home/" Response.Cookies("Type").Secure = FALSE %>. III.6.3 Chuyể n hướ ng điề u khiể n browser Thay vì gở i mộ t nộ i dung tớ i user, ta có thể gở i một thô ng bá o đế n browser để nó chuyể n tớ i mộ t URL khá c bằ ng cá ch sử dụng phương thứ c Redirect. Cuù phaù p Response.Redirect URL Tham soá URL. Löu haønh noä i boä.
<span class='text_page_counter'>(22)</span> 22. Tìm hieå u veà ASP. Đị a chỉ URL (Uniform Resource Locator) mà ta chuyể n hướ ng điề u khiể n tớ i. Ví dụ : bạ n muố n khi khá ch thă m Web site củ a bạ n thì họ đă ng ký trướ c khi sử duï ng noù .Ta taï o moä t Form coù teâ n laø register.asp : ---register.asp--<HTML> <HEAD><TILTE>Register</TILTE></HEAD> <BODY> <H4>Registration:</H4> <FORM ACTION = "/regresults.asp" METHOD = "POST"> <P>Please enter your first name: <INPUT NAME = "FirstName" TYPE=“TEXT” SIZE = 30> <P>Please enter your last name: <INPUT NAME = "LastName" TYPE=“TEXT” SIZE = 20> <BR><INPUT TYPE = SUBMIT VALUE=“Register”> </FORM> </BODY> </HTML> Sau đó để kiể m tra xem user có đưa và o đầ y đủ thô ng tin hay khô ng. Nế u khô ng thì chuyể n hướ ng điề u khiể n về lạ i trang đă ng ký là “register.asp”. ---regresults.asp--<% If Request.Form(“FirstName”)=“” Then Response.Redirect “/register.asp” %> <HTML> <HEAD><TILTE>Registration Results</TILTE></HEAD> <BODY> <% Löu haønh noä i boä.
<span class='text_page_counter'>(23)</span> 23. Tìm hieå u veà ASP. Thank you <% =Request.Form(“FirstName”) %> for registering! %> </BODY> </HTML> Chú ý : Nế u sử dụ ng Response.Redirect sau khi mộ t nộ i dung đã đượ c gử i về cho user thì seõ xaû y ra loã i. III.6.4 Đệ m trang Bình thườ ng, khi mộ t trang ASP đượ c xử lý trê n server, kế t xuấ t đượ c gở i tớ i browser ngay lậ p tứ c sau khi mỗ i lệ nh trong trang đượ c thực thi. Khi bạ n muố n đệ m kế t xuấ t củ a mộ t trang ASP thì server sẽ khô ng gở i đá p ứ ng nà o tớ i client cho đế n khi tấ t cả cá c server script trong trang hiệ n hà nh đã đượ c xử lý hoặ c là cho đế n khi phương thứ c Flush hoặ c End đượ c gọ i. Buffer property khô ng thể thiế t lậ p khi server đã gử i nộ i dung về client, vì thế để thiế t lậ p ta phả i gọ i Response.Buffer ở đầ u trang. Cuù phaù p Response.Buffer [= flag] Caù c tham soá flag Chỉ đị nh trang kế t xuấ t có đượ c đệ m hay khô ng. Giaù trò. Moâ taû. FALSE. Khô ng đệm.Server gở i kế t xuấ t tớ i client buffer đượ c xử lý . Server khô ng gở i kế t xuấ t tớ i client cho đế n khi tấ t cả cá c đoạ n. TRUE. script ASP trê n trang hiê n hà nh đã đượ c xử lý hoặ c cho đế n khi phương thứ c Flush hoặ c End đượ c gọ i.. Löu haønh noä i boä.
<span class='text_page_counter'>(24)</span> 24. Tìm hieå u veà ASP. Giaù trò Buffer maë c ñò nh cho taá t caû caù c trang ASP laø FALSE. Tuy nhieâ n baï n có thể đặ t buffer củ a đố i tượ ng Response là TRUE để thi hà nh cá c script trong mộ t trang trướ c khi gở i tớ i user Ví dụ : đoạn script nà y sẽ hiể n thị cá c số từ 1 đế n 100 nhưng tấ t cả nộ i dung củ a trang đượ c gở i cù ng mộ t lú c tớ i browser cho đế n khi đoạ n script xử lý xong. <% Response.Buffer = True %> <HTML> <HEAD><TILTE>Buffer Example</TILTE></HEAD> <BODY> <% For i=1 To 100 Response.Write i & “<BR>” Next %> </BODY> </HTML> Có thể sử dụ ng Buffer để xá c đị nh tạ i mộ t số điể m nà o đó của trang đượ c xử lý , mà ở đó ta khô ng muố n gử i nộ i dung trướ c đó tớ i ngườ i sử dụ ng,lú c đó có thể sử dụ ng phương thứ c Redirect để kế t nố i ngườ i sử dụ ng vớ i URL khá c, hoặ c sử dụ ng phương thứ c Clear để xó a Buffer và gở i nộ i dung khá c tớ i ngườ i sử dụ ng. Ví duï : ---Choose.asp--<HTML> <BODY> <HEAD><TILTE></TILTE></HEAD> <H4></H4> <FORM ACTION = "jump.asp" METHOD = "GET"> <SELECT NAME=“whichpage” > <OPTION SELECTED VALUE=“news” >News </OPTION> Löu haønh noä i boä.
<span class='text_page_counter'>(25)</span> 25. Tìm hieå u veà ASP. <OPTION VALUE=“sport” >Sport</OPTION> <OPTION VALUE=“music” >Music</OPTION> </SELECT> <BR><INPUT TYPE = SUBMIT VALUE=“Choose” >. </FORM> </BODY> </HTML> ---jump.asp--<% Response.Buffer = True %> <HTML> <HEAD><TILTE> </TILTE></HEAD> <BODY> <% which=Request.QueryString(“whichpage”) Select Case which case “news” Response.Redirect “/news.asp” case “sport” Response.Redirect. “/sport.asp”. case “music” Response.Redirect. “/music.asp”. %> </BODY> </HTML> III.6.5 Thieá t laä p kieåu noä i dung cuû a trang ContentType property chỉ rõ kiể u nộ i dung củ a thâ n đá p ứng(kiể u MIME). Caù c kieå u phoå bieá n laø : “text/HTML”, “image/GIF”, “application/msword” , , , “text/rtf”. Nế u ContentType khô ng đượ c chỉ đị nh,mặ c đị nh là text/HTML. Löu haønh noä i boä.
<span class='text_page_counter'>(26)</span> 26. Tìm hieå u veà ASP. Cuù phaù p Response.ContentType [= ContentType ] Tham soá ContentType Chuỗ i mô tả nộ i dung kiể u dữ liệ u. Chuỗ i nà y thườ ng đượ c đị nh dạ ng là type/subtype sao cho type là loạ i nộ i dung tổ ng quá t và subtype là kiể u nộ i dung ñaë c tröng. Ví dụ 1: để hiể n thị source code củ a mộ t vă n bả n HTML, bạ n thiế t lậ p ContentType property thà nh “text/plain” ,thâ n củ a đá p ứ ng đượ c gở i như là mộ t vă n bả n bình thườ ng hơn là một trang HTML. < % Response.ContentType= “text/plain” %> <HTML> <HEAD><TILTE>HTML Document</TILTE></HEAD> <BODY> <H1>This is an HTML Document </H1> </BODY> </HTML> Khi đó browser sẽ hiể n thị trang nhậ n đượ c như mộ t trang vă n bả n bình thườ ng chứ khô ng phả i là mộ t trang HTML. Ví dụ 2: để hiể n thị trang trê n Web browser là mộ t trang HTML, bạ n thiế t laä p ContentType property thaø nh “text/HTML” <% Response.ContentType = "text/HTML" %> <HTML> <HEAD><TILTE>HTML Document</TILTE></HEAD> <BODY> <H1>This is an HTML </H1> </BODY> </HTML>. Löu haønh noä i boä.
<span class='text_page_counter'>(27)</span> 27. Tìm hieå u veà ASP. III.6.6 Maõ traï ng thaù i Status property chỉ đị nh giá trị củ a dò ng trạ ng thá i trả về bở i server trong mộ t đá p ứ ng HTTP, property nà y khô ng sử a đổ i tiê u đề . Giá trị cá c trạ ng thá i đượ c ñò nh nghó a trong ñaë c taû HTTP. Cuù phaù p: Response.Status = StatusDescription Tham soá StatusDescription Mộ t chuỗ i gồ m có 3 chữ số cho biế t mã trạ ng thá i. Ví dụ : trả về mã trạng thá i 401 Not Authorized nế u ai đó truy tìm trang ASP trong ngaø y Wednesday <% If WEEKDAY(WEEKDAY(DATE))=“Wednesday” Then Response.Status=“401 Not Authorized” Response.End Else %> <HTML> <HEAD><TILTE>Not Wednesday</TILTE></HEAD> <BODY> Today is not Wednesday. </BODY> </HTML> <% End If %> III.7.Đố i tượ ng Server. Đố i tượ ng server cung cấ p truy cậ p tớ i cá c phương thứ c và đặ c tính (property) trê n server.Hầ u hết cá c phương thứ c và đặ c tính (property) server như là cá c chứ c nă ng tiệ n ích. Cuù phaù p Server.property|method Löu haønh noä i boä.
<span class='text_page_counter'>(28)</span> 28. Tìm hieå u veà ASP. Properties ScriptTimeout. Khoả ng thờ i gian mà mộ t script có thể chạ y trướ c khi hế t thờ i gian (time out).. Methods CreateObject. Tạ o mộ t thự c thể (instance) củ a mộ t đối tượ ng hoặ c thà nh phaà n server .. HTMLEncode Maõ hoù a chuoã i thaø nh daï ng HTML . MapPath URLEncode. Aù nh xạ đườ ng dẫ n ảo ,đườ ng dẫ n tuyệ t đố i hay tương đố i trê n server hiệ n hà nh và o mộ t đườ ng dẫ n vậ t lý . Mã hó a chuỗ i kí tự thà nh dạ ng URL.. III.7.1 ScriptTimeout ScriptTimeout property chỉ định khoả ng thờ i gian tố i đa mộ t script có thể chạ y trướ c khi nó đượ c kế t thú c. Khoả ng thờ i gian nà y sẽ khô ng ả nh hưở ng trong khi đang xử lý mộ t thà nh phầ n server. Cuù phaù p Server.ScriptTimeout = NumSeconds Caù c tham soá NumSeconds Chỉ đị nh số giâ y tố i đa mà một script có thể chạ y trướ c khi kế t thú c nó. Giaù trò maëc ñò nh laø 90 giaâ y. Ghi chuù : Baï n khoâ ng theå thieá t laä p giaù trò nhoû hôn giaù trò chæ ñò nh. Ví dụ trong mộ t số trườ ng hợ p, bạ n muố n thi hà nh mộ t đoạ n script mà thờ i gian củ a nó dà i hơn 90 giâ y mà khô ng muố n chỉ mộ t phầ n của đoạ n script đượ c hiể n thị thì khi đó ta có thể sử dụ ng ScriptTimeout property để thự c thi đoạ n script đoạ n script đó . <% Server.ScriptTimeout = 100 %> Löu haønh noä i boä.
<span class='text_page_counter'>(29)</span> 29. Tìm hieå u veà ASP. <HTML> <HEAD><TILTE>ScriptTimeOut Example</TILTE></HEAD> <BODY> <% For i=1 To 10000 Response.Write i & “<BR>” Next %> </BODY> </HTML> III.7.2 CreateObject Phương thứ c CreateObject tạ o mộ t thự c thể (instance) củ a mộ t thà nh phầ n server để có thể sử dụ ng cá c phương thứ c và truy cậ p cá c property củ a thà nh phầ n đó . Cuù phaù p Server.CreateObject( progID ) Thamsoá progID Chỉ đị nh kiể u đố i tượ ng cầ n tạo .. Ví dụ : để xem mộ t Web browser có hỗ trợ cookie,frames,tables ta sử dụ ng moä t trong caù c thaø nh phaà n cung caá p cho ASP laø thaø nh phaà n Browser Capabilities. <HTML> <HEAD><TILTE>CreateObject Example</TILTE></HEAD> <BODY> <% ‘tạ o thực thể củ a thà nh phầ n Set objBrowser= Server.CreateObject("MSWC.BrowserType") %> Löu haønh noä i boä.
<span class='text_page_counter'>(30)</span> 30. Tìm hieå u veà ASP. ‘sử dụ ng cá c property Your browser has the properties: Cookies =<%=objBrowser.cookie%><BR> Tables = <%=objBrowser.tables%><BR> Frames = <%=objBrowser.frames%><BR> </BODY> </HTML> Ghi chuù : Mặ c đị nh, cá c đố i tượ ng tạ o bở i phương thứ c Server.CreateObject có page scope (phạ m vi trang) nghĩ a là server tự độ ng hủ y bỏ chú ng khi server xử lý xong trang ASP hieä n haø nh. Để tạ o mộ t đố i tượng vớ i phạm vi là session hay application ,bạ n có thể sử dụ ng thẻ <OBJECT> và thiế t lậ p thuộ c tính SCOPE cho SESSION hoặ c APPLICATION, hoặ c là lưu trữ đố i tượng trong biế n session hoặ c application . Tạ o thà nh phầ n vớ i Session scope (phạm vi session) Mộ t đố i tượ ng session-scope đượ c tạ o ra cho mỗ i session mớ i trong mộ t ứ ng dụ ng và đượ c giả i phó ng khi session kế t thú c.Do đó , có mộ t đố i tượng trê n session hoạ t độ ng. Biế n session có thể được sử dụ ng mà mộ t user yê u cầu. Để tạ o mộ t đố i tượ ng session scope, bạ n có thể sử dụ ng thẻ <OBJECT> trong tậ p tin Global.asa hoặ c là sử dụ ng phương thứ c Server.CreateObject trê n trang ASP . Ví dụ 1: sử dụ ng phương thứ c Server.CreateObject <% Set Session(objAd) = Server.CreateObject("MSWC. Adrotator")%> Ví dụ 2: sử dụ ng thẻ <OBJECT> trong tậ p tin Global.asa <OBJECT RUNAT=Server SCOPE=Session ID=objAd PROGID="MSWC.Adrotator"> </OBJECT> Tạ o thà nh phầ n vớ i Application scope (phạ m vi Application). Löu haønh noä i boä.
<span class='text_page_counter'>(31)</span> 31. Tìm hieå u veà ASP. Mộ t đố i tượ ngAn application-scope object là mộ t thự c thể đơn củ a mộ t đố i tượ ng đượ c tạ o ra khi ứ ng dụ ng bắ t đầ u. Đố i tượ ng nà y đượ c chia sẽ bở i tấ t cả cá c gien yeâ u caà u. Ví dụ 1: sử dụ ng phương thứ c Server.CreateObject <% Set Application(objAd) = Server.CreateObject("MSWC.Adrotator")%> Ví dụ 2: sử dụ ng thẻ <OBJECT> trong tậ p tin Global.asa <OBJECT RUNAT=Server SCOPE=Application ID=objAd PROGID="MSWC.Adrotator"> </OBJECT>. Bạ n khô ng thể tạ o mộ t thự c thể (instance) có tê n trù ng vớ i cá c đố i tượ ng có saü n. Ví duï: <% Set Response = Server.CreateObject("Response") %>. III.7.3 HTMLEncode Phương thứ c HTMLEncode dù ng để mã hó a mộ t chuỗ i thà nh dạ ng HTML . Cuù phaù p Server.HTMLEncode( string ) Tham soá string Chuỗ i để mã hó a. Ví duï : <HTML> <HEAD><TILTE>HTMLEncode Example</TILTE></HEAD> <BODY> <% Löu haønh noä i boä.
<span class='text_page_counter'>(32)</span> 32. Tìm hieå u veà ASP. Response.Write “<B>The bold tag </B>" Response.Write “<BR>” Response.Write Server.HTMLEncode("<B>The bold tag </B>") %> </BODY> </HTML> keá t quaû hieå n thò laø : The bold tag <B>The bold tag </B> III.7.4 MapPath Phương thứ c MapPath á nh xạ mộ t đườ ng dẫ n tương đố i hoặ c ả o tớ i mộ t thư muï c vaä t lí treâ n server Cuù phaù p Server.MapPath( Path ) Tham soá Path Chỉ đị nh đườ ng dẫ n tương đố i hoặ c ả o á nh xạ thà nh mộ t thư mụ c vậ t lý .Nế u Path bắ t đầ u vớ i 1 forward (/) hoặ c backward slash hay (\) thì phương thứ c MapPath trả về mộ t đườ ng dẫ n nế u Path là mộ t đườ ng dẫ n ảo đầ y đủ .Nế u Path khô ng bắ t đầ u vớ i mộ t slash (/ hoặ c\ ), phương thứ c MapPath trả về mộ t đườ ng dẫ n tương đố i tớ i thư mục củ a tậ p tin .asp đang thự c thi. Ví dụ : tậ p tin data.txt đượ c đị nh vị trong thư mụ c,C:\Inetpub\Wwwroot\Script, như là tậ p tin test.asp chứ a đoạ n script sau. Thư mụ c C:\Inetpub\Wwwroot thì đượ c thieá t laä p nhö laø thö muï c chuû cuû a server. Đoạ n script sau sử dụ ng biế n server là PATH_INFO để á nh xạ đườ ng dẫ n vaä t lyù cuû a taä p tin hieä n haø nh. Löu haønh noä i boä.
<span class='text_page_counter'>(33)</span> 33. Tìm hieå u veà ASP. <%= server.MapPath(Request.ServerVariables("PATH_INFO"))%><BR> keá t quaû laø: C:\inetpub\wwwroot\script\test.asp<BR> Nế u khô ng bắ t đầ u vớ i ký tự slash (/ hoặ c \) thì chú ng được á nh xạ tương đố i tớ i thư mụ c hiệ n hà nh, trong trườ ng hợ p nà y là C:\Inetpub\Wwwroot\Script . <%= server.mappath("data.txt")%><BR> <%= server.mappath("script/data.txt")%><BR> keá t quaû laø: c:\inetpub\wwwroot\script\data.txt<BR> c:\inetpub\wwwroot\script\script\data.txt<BR> III.7.5 Maõ hoù a moä t chuoã i query Phương thứ c ULREncode mã hó a mộ t chuỗ i thà nh dạ ng URL.Ví dụ , tấ t cả cá c khoả ng trắ ng đượ c chuyể n đổ i thà nh dấ u cộ ng. Cuù phaù p Server.URLEncode( string ). Caù c thamsoá string Chuỗ i để mã hó a. Ví duï 1: <%= Server.URLEncode("The paragraph tag: <P>") %> khi đó kế t quả mã hó a là : The+paragraph+tag%3A+%3CP%3E Ví duï 2: <% Response.Write(Server.URLEncode("")) %> Löu haønh noä i boä.
<span class='text_page_counter'>(34)</span> 34. Tìm hieå u veà ASP. khi đó kế t quả mã hó a là : http%3A%2F%2Fwww%2Emicrosoft%2Ecom Ưù ng dụ ng cơ bả n ASP gồ m có mộ t thư mụ c ả o trê n server và tấ t cả tà i liệ u và tậ p tin mà nó ở trong thư mụ c ả o. Khi sử dụng nhữ ng ứ ng dụ ng cơ bả n của ASP bạ n có thể sử dụ ng cá c loạ i đố i tượ ng sau: • Application state: tấ t cả thô ng tin gắ n liề n vớ i mộ t ứ ng dụ ng có thể được dù ng cho tấ t cả nhữ ng user củ a mộ t ứ ng dụ ng . • Session state: nhữ ng thô ng tin thì chỉ có thể đượ c dù ng cho mộ t user. III.8.Đố i tượ ng Session. Đố i tượ ng Session đượ c sử dụ ng để lưu trữ và tìm lạ i thô ng tin về mộ t user session. Cá c giá trị lưu trữ trong đố i tượ ng Session khô ng bị loạ i bỏ đi khi user di chuyể n từ trang nà y sang trang khá c trong ứ ng dụ ng, Web server tự động tạ o ra mộ t đố i tượ ng Session khi mộ t trang Web trong ứ ng dụ ng đượ c yê u cầu bở i mộ t user chưa có session. Server hủ y bỏ đố i tượ ng Session khi nó hế t thờ i gian hay đượ c hủ y bỏ . Thự c tế , mộ t Session chỉ thuộ c về một user. Dữ liệ u Session thườ ng gắ n liề n vớ i một user, nó quả n lý các thô ng tin về user đang sử dụ ng mộ t ứ ng dụng . Cuù phaù p Session.collection|property|method Collections Contents Properties SessionID. Chứ a cá c mụ c (item) mà bạ n thê m và o session vớ i cá c lệ nh script . Trả về đị nh danh session đố i vớ i user.. Löu haønh noä i boä.
<span class='text_page_counter'>(35)</span> 35. Timeout. Tìm hieå u veà ASP. Khoả ng thờ i gian đối vớ i cá c session trong ud.. Methods. Hủ y bỏ mộ t đố i tượng Session và giả i phó ng tà i nguyê n củ a. Abandon. noù .. Events Se_OnStart Se_OnEnd. Xả y ra khi ngườ i sử dụ ng đầ u tiê n yê u cầu mộ t trang trong moä t chöông trìng ud Xaû y ra khi session keá t thuù c. III.8.1.Lưu trữ thông tin Session Nế u bạn cầ n lưu trữ dữ liệ u trong đố i tượ ng Session thì lưu trữ trong mộ t collection củ a đố i tượ ng Session. Thô ng tin lưu trữ trong đố i tượ ng Session thì có giaù trò thoâng qua session vaø coù session scope. Ví dụ : lưu trữ dữ liệ u trong 2 biế n củ a đố i tượ ng Session <HTML> <HEAD><TILTE>Session Example</TILTE></HEAD> <BODY> <% Session("Name") = "John" Session("age") = 20 %> </BODY> </HTML> Để truy tìm lạ i thô ng tin từ đối tượ ng Session, truy cậ p tê n biế n. Ví duï : hieå n thò giaù trò hieä n haø nh cuû a Session("Name") vaø Session("age") <HTML> <HEAD><TILTE>Session Example</TILTE></HEAD> <BODY> <% Response.Write Session("Name") & “<BR>” Löu haønh noä i boä.
<span class='text_page_counter'>(36)</span> 36. Tìm hieå u veà ASP. Response.Write Session("age") & “<BR>” %> </BODY> </HTML>. Quaû n lyù caù c session Bắ t đầ u và kế t thú c Session Mộ t Session có thể bắ t đầ u bằng 3 cá ch : ♦ User muố n yê u cầ u mộ t URL đượ c đị nh nghĩ a trong tậ p tin .asp và tậ p tin Global.asa cho ứ ng dụ ng bao gồ m cả thủ tụ c Session_OnStart ♦ User lưu trữ giá trị trong đố i tượ ng Session ♦ User yê u cầ u mộ t tậ p tin asp trong mộ t trình ứ ng dụng và tậ p tin Global.asa củ a ứ ng dụ ng sử dụ ng thẻ <OBJECT> để khở i tạ o mộ t đối tượ ng vớ i session scope. Mộ t session tự độ ng kế t thú c nế u user khô ng có yê u cầ u hoặ c refresh mộ t trang trong mộ t ứ ng dụ ng trong mộ t khoả ng thờ i gian. Giá trị nà y mặ c đị nh là 20 phú t. Bạ n có thể thay đổ i giá trị mặc đị nh cho mộ t ứ ng dụ ng bằ ng cá ch thieá t laä p Session Timeout property. Ví dụ : đặ t lạ i khoả ng thờ i gian là 40 phú t. <% Session.Timeout = 40 %> Ngoà i ra, bạ n cũ ng có thể kế t thú c mộ t session vớ i phương thứ c Abandon củ a đố i tượ ng Session .Ví dụ: <% Session.Abandon %>. Löu haønh noä i boä.
<span class='text_page_counter'>(37)</span> 37. Tìm hieå u veà ASP. III.8.2.Nhaä n daï ng moä t Session ASP gaù n moã i user session moä t ñò nh danh duy nhaá t. Moã i session coù moät đị nh danh duy nhấ t đượ c phá t sinh bở i server khi session đượ c tạ o ra.Để tìm lạ i session ID, sử dụ ng SessionID property củ a đố i tượ ng Session. Cuù phaù p Session.SessionID Ví duï : <HTML> <HEAD><TILTE>SessionID Example</TILTE></HEAD> <BODY> Your session ID is :<% =Session.SessionID %> </BODY> </HTML> III.8.3.Timeout Timeout chỉ đị nh khoả ng thờ i gian đã gán đố i tượ ng Session cho ứ ng dụ ng (tính bằ ng phú t). Nế u ngườ i sử dụ ng khô ng refresh(là m tươi) hoặ c yê u cầ u mộ t trang trong mộ t khoả ng thờ i gian, session kế t thú c. Cuù phaù p Session.Timeout [ = nMinutes] Tham soá nMinutes Chỉ đị nh số phú t mà mộ t session có thể vẫ n cò n trướ c khi server kế t thú c nó mộ t cách tự độ ng, mặ c đị nh là 20 phú t. Ví dụ : hiể n thị Timeout property và đặ t lạ i giá trị Timeout mớ i. <HTML> <HEAD><TILTE>Timeout Example</TILTE></HEAD> Löu haønh noä i boä.
<span class='text_page_counter'>(38)</span> 38. Tìm hieå u veà ASP. <BODY> Timeout=<% =Session.Timeout %><BR> <% Session.Timeout=30 %> Your new time out is: <% =Session.Timeout %> </BODY> </HTML> Lưu ý : Bạn khô ng thể đặ t lạ i khoả ng thờ i gian nhỏ hơn giá trị mặ c đị nh. III.8.4.Cá c sự kiệ n Session Đố i tượ ng Session có 2 sự kiệ n: Session_OnEnd đượ c kích khở i khi mộ t session bắ t đầ u và Session_OnStart đượ c kích khở i khi mộ t session kế t thú c. Cả 2 sự kiệ n này phả i được đị nh vị trong tậ p tin Global.asa. Nó chứ a toà n bộ thô ng tin về ứ ng dụng Web site củ a bạ n. Tậ p tin Global.asa có cấ u trú c sau: <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnEnd End Sub </SCRIPT>. <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Session_OnStart End Sub </SCRIPT> Tham soá ScriptLanguage Chỉ đị nh ngô n ngữ scripting sử dụ ng để viế t cá c script sự kiệ n. Nó có thể là bấ t kỳ ngô n ngữ scripting đượ c hỗ trợ như là VBScript hoặ c JScript. Ghi chuù : Löu haønh noä i boä.
<span class='text_page_counter'>(39)</span> 39. Tìm hieå u veà ASP. Bạ n khô ng thể sử dụ ng cá c thẻ HTML hoặ c phương thứ c Response.Write bê n trong taä p tin Global.asa. Bạ n khô ng thể gọ i phưong thứ c MapPath trong đoạ n script Session_OnEnd. Bạ n nê n chú ý rằ ng bấ t kỳ script sự kiệ n Session_OnStart nà o theo sau là mộ t lờ i gọ i tớ i phương thứ c Redirect thì khô ng đượ c thực thi. Vì thế , bạ n nê n gọ i phương thứ c Redirect sau cù ng trong script sự kiệ n củ a bạ n.Ví dụ như: <SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart ' đoạ n script khở i tạ o Session Response.Redirect "http:/server/app/StartHere.asp" End sub </SCRIPT>. Tuy nhiê n, bạ n khô ng thể lưu trữ mộ t đố i tượ ng có sẵ n trong đố i tượ ng Session.Ví duï nhö: <% Set Session("var1") = Session Set Session("var2") = Request Set Session("var3") = Response Set Session("var4") = Server Set Session("var5") = Application %> Bạ n có thể sử dụ ng đố i tượ ng session để thiế t lậ p nhữ ng đố i tượ ng hoặ c biế n có session scope. Scope là sự mở rộ ng mà nó là 1 đố i tượ ng thà nh phầ n hoặ c biế n. Löu haønh noä i boä.
<span class='text_page_counter'>(40)</span> 40. Tìm hieå u veà ASP. coù giaù trò trong ASP. Moä t bieá n maø coù session scope thì noù chæ coù theå beâ n trong session đó.. III.8.5.Đố i tượ ng Application Đố i tượ ng Application dù ng để chia sẻ thô ng tin giữ a tấ t cả ngườ i sử dụ ng củ a mộ t ứng dụ ng. Mộ t ứ ng dụ ng trê n ASP đượ c đị nh nghĩ a như toà n bộ cá c tậ p tin .asp trong mộ t thư mụ c ả o và cá c thư mụ c con củ a nó . Mộ t số đặ c điể m củ a ứ ng duï ng ASP: Dữ liệ u có thể được chia sẻ giữ a cá c trang trong ứ ng dụ ng. Mộ t thự c thể củ a một đố i tượ ng có thể đượ c chia sẻ giữ a cá c trang trong ứ ng duï ng. Dừ ng mộ t ứ ng dụ ng mà khô ng ả nh hưở ng tớ i cá c ứ ng dụ ng khá c. Cuù phaù p Application.method Collections Chứ a tấ t cả cá c mụ c đã đượ c thê m và o Contents. đố i tượ ng Application thô ng qua cá c lệ nh script.. Methods Lock. Unlock. Ngă n cấ m cá c client khá c sử a đổ i đặ c tính đố i tượ ng Application . Cho phé p cá c client khá c sử a đổ i đặ c tính đố i tượ ng Application .. Events Application_OnEnd Xả y ra khi ứ ng dụ ng kế t thú c(ví dụ khi ngừ ng web server) Application_OnStart Xả y ra khi mộ t trang trong ứ ng dụ ng lầ n đầ u đượ c tham Löu haønh noä i boä.
<span class='text_page_counter'>(41)</span> 41. Tìm hieå u veà ASP. khả o đế n.. III.8.5.1.Sử dụ ng phương thứ c Lock và Unlock Để ngă n cấ m giá trị cá c biế n lưu trữ trong đố i tượ ng Application có thể bị hư khi có 2 client cố gắ ng truy cậ p dữ liệu cù ng mộ t lú c thì chú ng ta có thể sử dụ ng phương thứ c Lock và Unlock.Khi phương thứ c đang Lock diễ n tiế n thì khô ng có cá c đoạ n script khá c cố gắng thay đổi thô ng tin lưu trữ trong đố i tượng Application cho đế n khi phương thứ c Unlock đượ c gọ i. Cuù phaù p Application.Lock Application.Unlock Ví dụ : sử dụ ng biế n ứ ng dụ ng NumVisits để lưu trữ số lầ n một trang cụ thể đã đượ c truy cậ p.Phương thứ c Lock đượ c gọ i để chỉ có client hiệ n hà nh có thể truy cậ p hoặ c thay đổ i NumVisits.Sau đó gọi phương thứ c Unlock cho phé p nhữ ng ngườ i sử dụ ng khá c truy cậ p đối tượ ng Application. <% Application.Lock Application("NumVisits") = Application("NumVisits") + 1 Application.Unlock %> This application page has been visited <%= Application("NumVisits") %> times!. Löu haønh noä i boä.
<span class='text_page_counter'>(42)</span> 42. Tìm hieå u veà ASP. III.8.5.2.Cá c sự kiệ n Application Giố ng như đố i tượng Session, đố i tượ ng Application cù ng có 2 sự kiệ n: Sự kiệ n Application_OnStart xả y ra khi mộ t ứ ng dụ ng ASP bắ t đầ u và trướ c sự kiệ n Session_OnStart, sự kiệ n Application_OnEnd xả y ra khi ứ ng dụ ng kế t thú c và sau sự kiệ n Session_OnEnd. Cuù phaù p <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Application_OnEnd End Sub </SCRIPT>. <SCRIPT LANGUAGE=ScriptLanguage RUNAT=Server> Sub Application_OnStart End Sub </SCRIPT>. Tham soá ScriptLanguage Chỉ đị nh ngô n ngữ scripting sử dụ ng để viế t cá c script sự kiệ n.Nó có thể là bấ t kỳ ngô n ngữ scripting đượ c hỗ trợ như là VBScript hoặ c JScript. Ghi chuù Bạ n khô ng thể gọ i phương thứ c MapPath trong đoạ n script Application_OnEnd .. Löu haønh noä i boä.
<span class='text_page_counter'>(43)</span> 43. Tìm hieå u veà ASP. Ví dụ : hiể n thị thô ng tin cho mỗ i user củ a ứ ng dụng xem khi và o ứ ng dụ ng bằ ng cá ch sử dụ ng sự kiệ n Application_OnStart, sau đó cho phé p ngườ i sử dụ ng sử a đổ i lạ i thô ng tin. <SCRIPT LANGUAGE =VBScript RUNAT=Server> Sub Application _OnStart Application (“yourname” )= “Unknow” Application (“occuption” )= “Unknow” End Sub </SCRIPT> ---Display.asp--‘hiể n thị thô ng tin để user truy cậ p tậ p tin Display.asp có thể xem <HTML> <BODY> Thank you, <%=Application (“yourname”)%><br> You are <%=Application (“occuption”)%><br> </BODY> </HTML>. ---Change.asp--‘ thay đổ i giá trị mớ i và nhấ n Send để thay đổ i <html> <body> <Form Method=“GET” Action=“Result.asp” > Please enter your name: <input type="text" name="name" ><br> Please choose your occupation:<BR> Löu haønh noä i boä.
<span class='text_page_counter'>(44)</span> 44. Tìm hieå u veà ASP. <input type= "radio" name= "occup" >Studen <br> <input type= "radio" name= "occup" >Teacher <br> <input type= "radio" name= "occup" >Engineer <br> <input type="submit" value="Send" > </form> </body> </html>. ---Result.asp--‘đặ t lạ i giá trị nhậ n đượ c từ user trong tậ p tin Change.asp và chuyể n hướ ng kế t nố i user tớ i tậ p tin Display.asp để xem giá trị mớ i. <% If Not IsEmpty(Request .Form(“ newmsg” )) then Application.Lock Application(“yourname”) = Request.QueryString(“name” ) Application(“your_occup”) = Request.QueryString(“occup” ) Application .UnLock End If Response.Redirect “Display.asp” %> Bạ n khô ng thể lưu trữ mộ t đố i tượ ng có sẵ n trong đố i tượ ng Application. Ví dụ nhö: <% Set Application("var1") = Session Set Application("var2") = Request Set Application("var3") = Response Löu haønh noä i boä.
<span class='text_page_counter'>(45)</span> 45. Tìm hieå u veà ASP. Set Application("var4") = Server Set Application("var5") = Application %>. VI. CAÙ C THAØ NH PHAÀ N (COMPONENT) CUÛ A ASP Ngoà i cá c đố i tượ ng cơ bả n có sẵ n trong mô i trườ ng ASP, ASPviệ c tạ o cá c trang Web độ ng bằ ng ASP cò n đượ c trợ giú p nhờ mộ t số thư việ n cá c đố i tượ ng (Active X Component) củ a ActiveX Server. Cá c thà nh phầ n đượ c thiế t kế để chạ y trê n Web Server như mộ t ứ ng dụ ng Web cơ sở hợp thà nh cá c gó i nhỏ đặ c trưng chung là độ ng. Mỗ i thà nh phầ n đượ c sử dụ ng cho mộ t cô ng việ c chuyê n biệ tnhiệ m cho là mộ t thư việ n cá c lớ p (hay đố i tượ ng), đượ c thiế t kế ở dạ ng Automation Server, thự c hiệ n mộ t nhó m cô ng việ c chung nhấ t cho mộ t thao tá c nà o đó , chẳ ng hạ n như truy xuấ t database, truy xuấ t file… vì thế ngườ i phá t triể n ứ ng dụ ng Web baè ng ASP khoä ng caà n phaû i taï o laï i caù c ñaë c tính naø y. Bạ n có thể tạ o độ ng, tương tá c vớ i cá c trang Web bằ ng cá ch sử dụ ng cá c thà nh phầ n server đã đượ c included vớ i Active Server Pages (ASP) trong cá c đoạ n script cuû a baï n. Thaø nh phaà n File Access VI.1.Đố i tượ ng FileSystemObject. Thà nh phầ n File Access sử dụ ng đố i tượ ng FileSystemObject và TextStream để khô i phụ c lạ i và sử a đổ i thô ng tin lưu trữ trong file trê n server. Đố i tượ ng FileSystemObject cung cấ p thao tá c các tậ p tin vă n bả n từ bê n trong đoạ n mã củ a chú ng ta. Chú ng ta có thể tạo mộ t thực thể củ a đố i tượ ng FileSystemObject bằ ng cá ch sử dụ ng đoạ n script sau: Set objFSO=CreateObject(“Scripting.FileSystemObject”) Mỗ i khi chú ng ta có mộ t đố i tượ ng FileSystemObject, chú ng ta tạ o đố i tượ ng TextStream bằ ng cá ch sử dụ ng cá c phương thứ c củ a FileSystemObject Löu haønh noä i boä.
<span class='text_page_counter'>(46)</span> 46. Tìm hieå u veà ASP. VI.1.1Phương thứ c CreateTextFile Phương thứ c CreateTextFile tạ o mộ t file vă n bả n mớ i hoặ c viế t đè lên mộ t file đã tồ n tạ i. Phương thứ c này trả về mộ t đố i tượng TextStream mà chú ng ta có thể sử dụ ng để đọ c file hoặ c ghi và o file. Trướ c tiê n chú ng ta tạ o mộ t đố i tượ ng FileSystemObject, sau đó sử dụ ng đố i tượ ng nà y để tạ o đố i tượ ng TextStream. Cuù phaù p: [object.]CreateTextFile(filename[,overwrite]) Caù c tham soá : Object. Tê n củ a mộ t đố i tượ ng FileSystemObject. Filename. Đườ ng dẫ n và tê n file chú ng ta tạ o ra hoặ c ghi leâ n. Overwrite. TRUE ghi đè lê n mộ t file đã tồ n tạ i, ngượ c lạ i là FALSE. Ví dụ : tạo mộ t file mớ i và ghi dữ liệ u và o file.txt <% Set objFSO=Server.CreateObject(“Scripting.FileSystemObject”) Set objNewFile=obj.CreateTextFile(“C:\MyFile\file.txt”,FALSE) objNewFile.Write(“Hello”) objNewFile.WriteLine(“Welcom”) objNewFile.Close %> VI.1.2.Phương thứ c OpenTextFile: Phương thứ c OpenTextFile mở mộ t file vă n bả n đã tồ n tạ i. Phương thứ c nà y trả về mộ t đố i tượ ng TextStream mà chúng ta có thể sử dụ ng để đọ c file hoặ c thê m dữ liệ u và o file. Trướ c tiê n, chú ng ta tạ o mộ t đố i tượ ng FileSystemObject sau đó sử dụ ng đố i tượ ng nà y để tạ o đố i tượng TextStream. Löu haønh noä i boä.
<span class='text_page_counter'>(47)</span> 47. Tìm hieå u veà ASP. Set objFSO=CreateObject(“Scripting.FileSystemObject”) Set objNewFile=obj.OpenTextFile (“C:\TextFile\Myfile.txt”) Cuù phaù p: [object.]OpenTextFile (filename[,iomode[ , create]]) Caù c tham soá : Object. Tê n củ a mộ t đố i tượ ng FileSystemObject.. Filename. Đườ ng dẫ n và tê n tậ p tin muố n mở .. Iomode. ForReading hoặ c ForAppending. Mặ c đị nh là ForReading.. Create. TRUE tạ o mộ t file mớ i hoặ c là FALSE nế u file đã tồ n tạ i rồ i.. Ví dụ1 : đọ c mộ t file sử dụng phương thứ c ReadLine <HTML> <HEAD> <TITLE>ReadingFile.asp</TITLE> </HEAD> <BODY> <% Set objFSO=Server.CreateObject(“Scripting.FileSystemObject”) Set objTextFile=obj.OpenTextFile(“C:\MyFile\file.txt”, 1 , FALSE ) WHILE NOT objTextFile.AtEndOfStream Response.Write objTextFile.ReadLine(“Hello”) WEND objTextFile.Close %> </BODY> </HTML> Ví dụ 2 : thê m dữ liệ u và o file.txt <HTML> Löu haønh noä i boä.
<span class='text_page_counter'>(48)</span> 48. Tìm hieå u veà ASP. <HEAD> <TITLE>ReadingFile.asp</TITLE> </HEAD> <BODY> <% Set objFSO=Server.CreateObject(“Scripting.FileSystemObject”) Set objTextFile=obj.OpenTextFile(“C:\MyFile\file.txt”,ForAppending) objTextFile.WriteBlankLines(2) objTextFile.WriteLine(“This is a new line”) objTextFile.Close %> </BODY> </HTML> VI.2..Đố i tượ ng TextStream Sử dụ ng cá c phương thứ c và property củ a đố i tượ ng TextStream để đọ c hay ghi dữ liệu và o file. Phương thứ c Close. Đó ng mộ t file.. Read(numchars). Đọ c numchars ký tự từ file.. ReadAll. Đọ c toà n bộ nộ i dung củ a file TextStream .. ReadLine. Đọ c mộ t dò ng từ file.. Skip(numchars). Nhả y qua numchars ký tự khi đọ c file.. SkipLine. Nhả y qua dò ng kế tiế p khi đọ c file.. Write(string). Ghi chuoã i leâ n file.. WriteLine([string]). Ghi chuỗ i và thê m ký tự xuố ng hà nglê n file.. WriteBlankLine(n). Ghi n doø ng leâ n file.. Properties Löu haønh noä i boä.
<span class='text_page_counter'>(49)</span> 49. Tìm hieå u veà ASP. AtEndOfLine. TRUE nế u con trỏ file ở cuố i dò ng trong mộ t file.. AtEndOfStream. TRUE nế u con trỏ file ở cuố i file.. Column. Trả về số cộ t hiệ n hà nh trong mộ t file, bắ t đầ u từ 1.. Line. Trả về số dò ng hiệ n hà nh trong mộ t file, bắ t đầ u từ 1.. Ví dụ 1 : sử dụ ng FileSystemObject để ghi dữ liệ u và o file <% Set objFile =Server. CreateObject("Scripting.FileSystemObject") Set objTextFile = objFile.CreateTextFile("c:\myfile.txt", True) objTextFile.WriteLine("This is a test.") objTextFile.Close %> Ví dụ 2 : sử dụ ng FileSystemObject để đọ c file <% Set objFile =Server.CreateObject("Scripting.FileSystemObject") Set objTextFile = objFile.CreateTextFile("c:\testfile.txt", True) While NOT objTextFile.AtEndOfStream Response.Write(objTextFile.ReadLine) Wend objTextFile.Close %> VI.3.Thaø nh phaà n Ad Rotator Thà nh phầ n Ad Rotator tạ o mộ t đố i tượ ng tự độ ng quay cá c hình ả nh quả ng cá o trê n mộ t trang Web. Mỗ i khi mộ t user mở hoặ c nạ p lạ i trang Web ,thà nh Löu haønh noä i boä.
<span class='text_page_counter'>(50)</span> 50. Tìm hieå u veà ASP. phầ n Ad Rotator hiể n thị mộ t thô ng bá o mớ i dự a trê n thô ng tin bạ n chỉ đị nh trong Rotator Schedule File Cuù phaù p: Set AdRotator = Server.CreateObject("MSWC.AdRotator") vớ i AdRotator là tê n củ a đố i tượ ng AdRotator. Properties Border Clickable. Chỉ đị nh kích thướ c đườ ng viề n củ a quả ng cá o banner. Cho biế t quả ng cá o banner có chứ c nă ng là mộ t siê u liê n kế t. Noù coù 2 giaù trò laø TRUE vaø FALSE.. TargetFrame Chỉ đị nh tê n củ a frame để hiể n thị thô ng bá o trong đó . Methods GetAdvertisement Laá y chi tieá t thoâ ng tin veà quaû ng caù o banner. Để tạ o mộ t thự c thể củ a thà nh phầ n Ad Rotator, chú ng ta sử dụ ng phương thứ c CreateObject củ a đố i tượng Server. <% Set objAd= Server.CreateObject("MSWC.AdRotator") %> Ví dụ : Hiể n thị cá c thô ng bá o khá c nhau mỗ i khi user xem trang Web, trong đó tậ p tin MyAdFile.txt chứ a thô ng tin về các quả ng cá o đượ c hiể n thị . <HTML> <HEAD> <TITLE>Adrotator Example</TITLE> </HEAD> <BODY> <% Set objAd = Server.CreateObject("MSWC.AdRotator") %> objAd.Border(0). ‘khô ng có đườ ng viề n. objAd.Clickable(TRUE) ‘laø moä t sieâ u lieâ n keát objAd.TargetFrame(“MyFrame”) ‘naï p vaø o frame teâ n MyFrame. Löu haønh noä i boä.
<span class='text_page_counter'>(51)</span> 51. Tìm hieå u veà ASP. strHTML=objAd.GetAdvertisement(“AdFiles\MyAdFile.txt”) Response.Write(strHTML). ‘ñöa HTML vaø o trong trang. %> </BODY> </HTML>. VI.4.Thaø nh phaà n Browser Capabilities Xá c đị nh khả nă ng, loạ i, kiể u củ a mỗ i browser như tê n,version,có hỗ trợ frame,table hay khoâ ng…) Khi mộ t browser kế t nố i tớ i web server, nó tự độ ng gở i tiê u đề User Agent HTTP. Tiê u đề nà y là mộ t chuỗ i ASCII đị nh dạ ng browser và version củ a nó Bạ n có thể thê m các property hoặ c đị nh nghĩ a browser mớ i bằ ng cá ch cậ p nhaä t file browscap.ini. Cuù phaù p Set BrowserType = Server.CreateObject("MSWC.BrowserType") vớ i BrowserType là tê n đố i tượ ng BrowserType. Ví dụ : sử dụ ng đố i tượ ng BrowserType hiể n thị mộ t bả ng cho biế t cá c khả naê ng cuû a browser hieä n haø nh <HTML> <HEAD> <TITLE>Browser Example</TITLE> </HEAD> <BODY> <% Set objBrow = Server.CreateObject("MSWC.BrowserType") %> <table border=1> <tr><td>Browser</td><td><%= objBrow.browser %> <tr><td>Version</td><td><%= objBrow.version %> </td></TR> Löu haønh noä i boä.
<span class='text_page_counter'>(52)</span> 52. <tr><td>Frames</td><td> <% if (objBrow.frames = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>Tables</td><td> <% if (objBrow.tables = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>BackgroundSounds</td><td> <% if (objBrow.BackgroundSounds = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>VBScript</td><td> <% if (bc.vbscript = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> <tr><td>JScript</td><td> <% if (bc.javascript = TRUE) then %> TRUE <% else %> FALSE <% end if %> </td></TR> </table> </BODY> </HTML>. Löu haønh noä i boä. Tìm hieå u veà ASP.
<span class='text_page_counter'>(53)</span> 53. Tìm hieå u veà ASP. VI.5.Thaø nh phaà n Content Linking Tạ o nộ i dung củ a trang và liên kế t chú ng vớ i nhau giố ng như nhữ ng trang trong moä t quyeå n saù ch. Thaø nh phaà n Content Linking taï o Nextlink quaû n lyù danh saù ch caù c URL, noù coù thể phá t sinh và cậ p nhậ t bả ng nộ i dung và điề u khiể n liê n kết tớ i cá c trang trướ c đó và cá c trang sau đó . Cuù phaù p Set NextLink = Server.CreateObject("MSWC.NextLink") vớ i NextLink là tên củ a đố i tượ ng đượ c tạ o bở i phương thứ c Server.CreateObject . Cá c phương thứ c GetListCount(list). Trả về tổ ng số trang chứ a trong list file.. GetNextURL(list). Laá y URL cuû a trang keá tieá p trong list file.. GetPreviousDescription(list) Lấ y dò ng mô tả củ a trang trướ c đó trong list file . GetListIndex(list). Laá y vò trí cuû a trang hieä n haø nh trong list file.. GetNthDescription(list,n). Mô tả trang thứ Nth trong list file.. GetPreviousURL(list). Lấ y URL củ a trang trướ c đó trong list file.. GetNextDescription(list). Laá y moâ taû cuû a trang keá tieá p trong list file.. GetNthURL(list,n). Lấ y URL củ a trang thứ Nth trong list file.. VI.5.1.Taï o noä i dung cuû a moä t trang Xâ y dự ng bả ng nộ i dung trong trang : <ul> <% Set objNextLink = Server.CreateObject ("MSWC.NextLink") %> <% intCount = objNextLink.GetListCount ("contentlink.txt") For intLoop=1 To intCount %> Löu haønh noä i boä.
<span class='text_page_counter'>(54)</span> 54. Tìm hieå u veà ASP. <li> <a href="<%= NextLink.GetNthURL ("contentlink.txt",intLoop ) %> "> <%= objNextLink.GetNthDescription ("contentlink.txt",intLoopI) %> </a> <% Next %> </ul> <% intCount = objNextLink.GetListCount ("links\ contentlink.txt") <% intCoun=objNextLink.GetListCount ("/demo/contentlink.txt") VI.5.2. Duyeä t thoâ ng qua caù c trang Đoạ n script sau thê m và o nú t Back và nú t Next tớ i mộ t file HTML . <% Set objNextLink = Server.CreateObject ("MSWC.NextLink") strListFile=(“contentlink.txt”) intThisPage= objNextLink. GetListIndex(strListFile) If ( intThisPage > 1) Then %> <Input Type=Button Value=“<Back” Onclick=“location.href=’<%= objNextLink.GetPreviousURL (strListFile) %>’ ; "> <% End If %> <Input Type=Button Value=“Home” Onclick=“location.href=’content,asp %>’ ; "> If ( intThisPage < objNextLink. GetListCount(strListFile) Then %> <Input Type=Button Value=“Next>” Onclick=“location.href=’<%= NextLink.GetNextURL (strListFiel) %>’; "> <% End If %>. Thaø nh phaà n Database Access Löu haønh noä i boä.
<span class='text_page_counter'>(55)</span> 55. Tìm hieå u veà ASP. Ta có thể tạ o nhữ ng trang Web độ ng tá c độ ng lẫ n nhau bằ ng cá ch sử dụng cá c thaø nh phaà n Server sau trong Script Mộ t ứ ng dụ ng Web Database viế t bằ ng cá ch sử dụng thà nh phầ n Database Access cuû a ActiveX hay coø n goï i laø thö vieä n ADO (ActiveX Data Object). Ñaâ y cuõ ng chính là mộ t điểm mạ nh nhấ t củ a ASP trong việ c phá t triể n ứ ng dụ ng Web Database. Cá c đố i tượ ng củ a ADO cung cấ p cơ chế tạ o ra cá c kế t nố i (Connection) vớ i haà u heá t caùc kieå u Database, cuõ ng nhö vieä c truy xuaá t, caä p nhaä t caù c Database naø y. Hieä n nay thö vieä n ADO laø moä t coâ ng cuï maï nh nhaá t trong vieä c phaù t trieå n caù c ứ ng dụ ng Database trê n Internet. Trong phaà n naø y ta seõ xem xeù t caù c phaà n trong thö vieä n coâ ng cuï naø y. Giao dieä n ADO : ADO được thiế t kế mộ t cá ch đơn giả n nhấ t, nó giao tiế p vớ i database thô ng qua phương thứ c ODBC (Open Database Connectivity), chú ng ta có thể sử dụ ng chú ng vớ i bấ t kỳ loại Database nà o nế u như ODBC có driver hỗ trợ . (Hiệ n nay tồ n tạ i Driver cho hầ u hế t cá c loạ i Database, như Foxpro, Access, oracle, Spl server…tuy nhiê n các file cơ sở dữ kiệ u theo dạ ng bả ng như Exel, hoặ c File text thì ODBC khô ng hỗ trợ ). Cá c đố i tượ ng trong ADO Cá c đố i tượ ng chính trong ADO đó là : Connection, Commmand và RecordSet. Ngoà i ba đố i tượ ng chính nà y cò n có các đố i tượ ng con củ a nó cù ng vớ i cá c tham số , property, phương thứ c bê n trong. Sử dụ ng Connection ta có thể thiế t lậ p sự liê n kế t vớ i cơ sở dữ liệ u, thô ng qua đó ta có thể thự c hiệ n cá c query để lấ y ra cá c record hoặ c cậ p nhậ t mộ t record bằ ng sử dụ ng đố i tượ ng Command. Kế t quả thự c Löu haønh noä i boä.
<span class='text_page_counter'>(56)</span> 56. Tìm hieå u veà ASP. hiệ n cá c query trê n database sẽ đượ c lưu và o đố i tượ ng RecordSet, trê n đố i tượ ng naø y ta coù theå duyeä t vaø laá y ra moä t hay nhieà u Record. 1. Đố i tượng Connection Để sử dụ ng đố i tượ ng Connection, trướ c tiê n ta phả i tạ o ra mộ t thự c thể (instance) cho nó , đây thự c sự là thự c thể củ a đố i tượ ng nà y trong trang ASP. Để tạ o mộ t thự c thể (instance) đố i tượ ng Connection bạ n có thể sử dụ ng đoạ n script sau: <% Connection_name= Server.CreateObject (“ADODB.Connection”) %> Thô ng thườ ng trong mộ t ứ ng dụ ng nế u ta cầ n có mộ t liê n kế t vớ i Data Source cố đị nh cho tấ t cả trang thì khi đó ta sẽ đặ t thự c thể (instance) củ a Connection ở mứ c application scope bằ ng cá ch đưa phá t biể u tạ o thự c thể (instance) ở trê n và o sự kiệ n Application_OnStart: <% Sub Application_OnStart () Set objConn= Servcer.CreateObject (“ADODB.Connection”) End Sub %> hoặ c thiế t lậ p tầ m vự c cho Connection ở mứ c Sesstion như sau : <%. Löu haønh noä i boä.
<span class='text_page_counter'>(57)</span> 57. Tìm hieå u veà ASP. Sub Session_OnStart () Set objConn = Server.CreateObject (“ADODB. Connection”) End Sub %> Tuy nhieâ n ta coù theå xem xeù t theâ m vieä c toá i öu cho caù c Connection trong moä t ứ ng dụ ng có nhiề u ngườ i sử dụng truy xuấ t tớ i Database, đó là khả nă ng Connection Pooling cuû a ODBC 3.0. Connection Pooling Cá c ứ ng dụ ng cơ sở ứ ng dụ ng truyề n thố ng đề u tạ o mộ t nố i liê n kế t đơn tớ i Database mà nó sử dụ ng, cò n cá c ứ ng dụ ng Database trê n Web lạ i mở và đó ng cá c liê n kế t nà y ở mỗ i mộ t trang Web. Mộ t phương phá p cho cá c ứ ng dụng Database trê n Web là tạ o mộ t sự liê n kết liê n tụ c vớ i cơ sở dữ liệ u của từ ng ngườ i sử dụ ng và lưu trữ trong đố i tượ ng Session. Tuy nhiê n phương phá p nà y có thể là m gia tă ng số lượ ng cá c user có kế t nố i vớ i cơ sở dữ liệ u mà khô ng là m việ c và nó chỉ đạ t đượ c độ tin cậ y đố i vớ i cá c Web Site có sự lưu thô ng dữ liệ u thấ p (low-trafic) Phương phá p tiệ n lợ i trong việ c quả n lý cá c kế t nối vớ i cơ sở dữ liệ u củ a ứ ng dụ ng Web là quả n lý bằ ng Connection Pool củ a ODBC 3.0, nhằ m giả m bớ t số lượ ng liê n kế t rả nh rỗ i, ODBC sẽ mở cá c kế t nố i và quả n lý cá c kế t nối nà y. Mỗ i khi có mộ t yê u cầ u mớ i thì thự c hiệ n việ c kiể m tra xem có liê n kế t nà o trong Connection Pool đang rả nh khô ng, nế u khô ng có thì sẽ tạ o kế t nố i mớ i, nế u có thì nó sẽ lấ y liê n kế t rả nh nà y mà khô ng tạ o liê n kế t mớ i. Nế u mộ t liê n kế t rả nh nà o trong Connection Pool tồ n tạ i quá 60 giâ y thì nó sẽ tự độ ng loại bỏ . Löu haønh noä i boä.
<span class='text_page_counter'>(58)</span> 58. Tìm hieå u veà ASP. Connection Pooling đượ c kích hoạ t mặ c nhiê n trong ASP, ta có thể loại bỏ baè ng caù ch thieá t laä p giaù trò Register Entry Start Connection Pool veà giaù trò 0. Cá c phương thứ c và đặ c tính (property) củ a đố i tượ ng Connection Phương thứ c. Moâ taû. Open. Mở mộ t kế t nố i mớ i tớ i dữ liệu nguồ n.. Close. Đó ng lạ i mộ t kế t nố i .. Execute. Thự c thi mộ t query,SQL hoặ c mộ t thủ tụ c lưu trữ sẵ n.. Property CommandTimeout. Moâ taû Số giâ y chờ đợ i khi thự c thi mộ t lệ nh trướ c khi keá t thuù c.. ConnectionString. Thô ng tin dù ng để tạo kế t nố i tớ i nguồ n dữ lieä u.. ConnectionTimeout Số giâ y chờ đợ i khi tạ o ra mộ t kế t nố i trướ c khi keá t thuù c.. 1.1 Mở và đó ng mộ t kế t nố i Database Để thiế t lậ p mộ t liê n nố i vớ i database thì bạ n tạo thự c thể (instance) củ a đố i tượ ng Connection, sau đó ta có thể mở mộ t kế t nố i tớ i dữ liệ u nguồ n (DSN) để có thể truy xuấ t dữ liệ u . Cuù phaù p : Connection.Open ConnectionString,User,Passwosd Löu haønh noä i boä.
<span class='text_page_counter'>(59)</span> 59. Tìm hieå u veà ASP. trong đó ConnectionString : Chuoã i ñò nh nghó a teâ n cuû a Data Source Name (DSN), teâ n nà y đượ c khai bá o trong ODBC. User : Tê n ngườ i sử dụ ng đưa và o khi mở mộ t kế t nố i Password : Maä t maõ ñöa vaø o khi thieá t laäp moä t keá t noá i. Ví dụ : mở mộ t DSN có tê n là student,user="student" và password ="magic" <% Set objConn=Server.CreateObject("ADODB.Connection") objConn .Open "DSN=student;uid=student;pwd=magic" objConn.Close Set objConn=Nothing %> Sau khi xử lý xong dữ liệ u trê n data source, trướ c khi kế t thú c trang ta phả i đó ng lạ i cá c kế t nố i đã mở . Sử dụ ng phương thứ c Close củ a đố i tượ ng Connection để đó ng mộ t kế t nố i. objConn.Close Sau khi đó ng mộ t kết nố i, bạ n khô ng thể sử dụ ng kế t nố i để giao tiế p vớ i database. 1.2Thự c thi câ u lệ nh SQL vớ i kế t nố i Open: Sau khi đã kế t nố i vớ i Data Source, để thự c thi mộ t câ u lệ nh SQL hoặ c vớ i mộ t thủ tục, sử dụ ng phương thứ c Execute cho phé p thự c thi mộ t câ u lệ nh tá c độ ng Löu haønh noä i boä.
<span class='text_page_counter'>(60)</span> 60. Tìm hieå u veà ASP. lê n Data Source. Phương thứ c nà y có 2 dạng : Mộ t dạ ng đượ c sử dụ ng khi tìm kiế m kế t quả từ mộ t database và dạng khá c là đượ c sử dụ ng khi khô ng có kế t quả nà o đượ c trả về . Set recordset = connection.Execute(CommandText, RecordsAffected, Options) connection.Execute CommandText, RecordsAffected, Options trong đó recordset : Mộ t biế n đố i tượ ng Recordset chứ a kế t quả truy vấ n. CommandText : Chứ a query để thự c thi. Connection : Mộ t biế n đố i tượ ng Connection. RecordsAffected : chứ a số record mà lệ nh tá c động đế n. Options : Có cá c giá trị khá c nhau tương ứ ng vớ i mỗ i loạ i CommandText.. Giaù trò. Hằ ng tương ứ ng. 0. AdCmdUnknown. 1. AdCmdText. 2. AdCmdTable. 3. AdCmdStoredProc. Moâ taû CommandText Unknown. Giaù trò naøy laø maë c ñò nh khi ñò nh nghó a. CommandText laø moä t caâ u leä nh nhö caâ u leä nh SQL. Teâ n cuû a baû ng taï o recordset . Mộ t thủ tục trữ sẵ n (stored procedure) trong data source.. Trướ c khi bạ n có thể sử dụ ng nhữ ng hằ ng số nà y trong mộ t trang ASP, bạ n phaû i include moä t file ñaë c bieä t goï i laø ADOVBS.inc. Löu haønh noä i boä.
<span class='text_page_counter'>(61)</span> 61. Tìm hieå u veà ASP. Ví dụ 1 : sử dụ ng phương thứ c Execute để thự c thi mộ t câ u lệ nh SQL mà khoâ ng tìm kieá m laï i baá t kyø keá t quaû naø o. <!-- #include virtual="ADOVBS.INC"--> <% ‘tạ o mộ t instance (thự c thể ) củ a đố i tượng Connection Set objConn = Server.CreateObject("ADODB.Connection") ‘mở kế t nố i tớ i Database objConn.Open "DSN=student;uid=student;pwd=magic" ‘thự c thi mộ t thủ tục lưu trữ sẵ n tê n là MyPro objConn.Execute “MyProc”, adCmdStoredProc objConn.Close Set objConn=Nothing %> Ví dụ 2 : sử dụ ng phương thứ c Execute để trả kế t quả từ mộ t câ u truy vấ n SQL <!-- #include virtual="ADOVBS.INC"--> <% ‘tạ o mộ t thự c thể của đố i tượ ng Connection Set objConn = Server.CreateObject("ADODB.Connection") ‘Mở kế t nố i tớ i Database Löu haønh noä i boä.
<span class='text_page_counter'>(62)</span> 62. Tìm hieå u veà ASP. objConn.Open "DSN=student;uid=student;pwd=magic" ‘thự c thi câ u lệ nh SQL SQLtemp="SELECT * FROM MyTable WHERE Name= 'John' " objConn.Execute SQLtemp, adCmdText objConn.Close Set objConn=Nothing %> 2. Đố i tượng Command. Thay vì phả i sử dụ ng phương thứ c Execute củ a đố i tượ ng Connection để thự c thi mộ t thủ tụ c lưu trữ sẵ n hoặ c mộ t câ u lệ nh SQL, ta có thể sử dụ ng đố i tượ ng Command để thi hà nh cá c thao tá c vớ i cơ sở dữ liệ u như : thê m, xó a, cậ p nhậ t dữ liệ u hoặ c truy vấ n dữ liệ u trong mộ t bả ng. Chú ý : Để thự c thi mộ t truy vấ n khô ng sử dụ ng đố i tượ ng Command, đưa mộ t chuỗ i truy vấ n và o phương thứ c Execute củ a đố i tượ ng Connection hoặ c là tớ i phương thứ c Open củ a đố i tượng Recordset. Tuy nhiê n, đố i tượ ng Command cầ n đượ c sử dụ ng khi bạn muố n vẫn giữ lạ i lệ nh và thực thi lạ i nó , hoặ c sử dụ ng cá c tham soá truy vaá n. Việ c tạo mộ t thực thể (instance) cho đố i tượ ng Command cũ ng giố ng như đố i tượ ng Connection tứ c là ta cũ ng sử dụ ng phương thứ c Server.CreateObject. Ví duï : Set objCmd = Server.CreateObject (“ADODB.Command”) Tuy nhiê n để thự c sự sử dụ ng biế n đố i tượ ng nà y ta phả i xem xé t cá c đặ c tính và phương thứ c đi kè m theo nó . Löu haønh noä i boä.
<span class='text_page_counter'>(63)</span> 63. Phương thứ c CreateParameter. Tìm hieå u veà ASP. Moâ taû Tạ o mộ t đố i tượ ng Parameter trong Parameters collection.. Execute. Thự c thi câ u lệ nh SQL hoặ c thủ tụ c lưu trữ sẵ n chỉ đị nh trong CommandText property.. Property ActiveConnection. Moâ taû Đố i tượ ng Connection nà o đượ c sử dụ ng vớ i đố i tượ ng Command.. CommandText. Chỉ đị nh câ u lệ nh cầ n thự c thi.. CommandTimeout Xá c đị nh thờ i gian thự c thi lệ nh, giá trị thờ i gian nà y tính theo giâ y. CommandType. Cho bieá t kieå u cuû a query chæ ñò nh trong CommandText.. Prepared. Tạ o ra lệ nh chuẩ n bị trướ c khi thự c thi.. 2.1 Taï o moä t keá t noá i Active Connection : Sau khi đã có thự c thể (instance) củ a đố i tượ ng Connection đã đượ c kế t nố i vớ i cơ sở dữ liệ u và đố i tượ ng Command. Lú c này nế u muố n sử dụ ng đố i tượ ng Command ta phả i gán tê n củ a Connection thích hợp (Connection nà o kế t nố i tớ i cơ sở dữ liệ u cầ n là m việ c ) và o cho ActiveConnecttion củ a đố i tượ ng Command. Löu haønh noä i boä.
<span class='text_page_counter'>(64)</span> 64. Tìm hieå u veà ASP. Cuù phaù p name.ActiveConnection = Connection_name Ví duï : <% Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DSN=student;uid=student;pwd=magic" objCmd.ActiveConnection = objConn.Open Sau khi đã thiế t lậ p kế t nố i vớ i đố i tượ ng Connection, ta có thể sử dụ ng phương thứ c Exexcute củ a đố i tượ ng Command gầ n giố ng như vớ i Connection . Tuy nhiê n, điể m khá c vớ i đố i tượ ng Connection là đố i vớ i đối tượ ng Command nế u ta có dự đị nh thi hà nh mộ t lệ nh nà o thì ta sẽ phả i khở i tạ o cá c giá trị cho CommandText, CommandType, …. Ví dụ : đoạ n chương trình thi hà nh mộ t câ u query trê n mộ t data source <% Set objConn = Server.CreateObject("ADODB.Connection") Set objCmd = Server.CreateObject(“ADODB.Command”) ‘taï o keá t noá i objConn.Open "DSN=student;uid=student;pwd=magic" objCmd.ActiveConnection = objConn.Open objCmd.CommandText="SELECT * FROM Contact WHERE State=’LA’" ‘cho bieá t CommandText laø moä t caâ u leä nh SQL objCmd.CommandType = 1 Löu haønh noä i boä.
<span class='text_page_counter'>(65)</span> 65. Tìm hieå u veà ASP. ‘bieâ n dò ch caâ u leä nh objCmd.Prepared = TRUE ‘thự c thi câ u lệ nh objCmd.Execute ‘giả i phó ng tà i nguyê n đã sử dụ ng Set objCmd.ActiveConnection = Nothing %> Chú ng ta có thể thiế t lậ p giá trị CommandTimeout đầ u tiê n để xá c đị nh khoả ng thờ i gian thực thi câ u lệ nh, mặ c đị nh là 30 giâ y, nế u để giá trị nà y là 0 thì ADO sẽ thự c thi cho đế n khi tá c vụ được hoà n tấ t. 2.2 Sử dụng tham số cho cá c lệ nh SQL. Nế u như query cầ n thự c hiệ n có yê u cầ u cá c tham số , thì ta phả i thê m các tham số nà y và o Parameter collection trướ c khi thự c hiệ n câ u lệ nh. Đố i vớ i phương thứ c Execute củ a đối tượ ng Connection khô ng có khả nă ng nà y. Sử dụ ng phương thứ c Execute củ a đố i tượ ng Command thự c thi câ u query chỉ ñò nh trong CommandText property. Cuù phaù p Set recordset = command.Execute(RecordsAffected, Parameters, Options) command.Execute RecordsAffected, Parameters, Options trong đó recordset : Mộ t biế n đố i tượ ng Recordset chứ a kế t quả truy vấ n.. Löu haønh noä i boä.
<span class='text_page_counter'>(66)</span> Tìm hieå u veà ASP. 66. command : Mộ t biế n đố i tượ ng đạ i diệ n cho đố i tượ ng Command. RecordAffected và Options có chứ c nă ng và giá trị giố ng như trong đố i tượ ng Connection. Parameter là mộ t dãy cá c giá trị tham số đượ c đưa và o vớ i mộ t câ u lệ nh SQL. Để tìm hiể u cá ch tạo ra danh sá ch cá c tham số của câ u lệ nh, ta hã y xem xé t cá c phương thứ c và property củ a Parameter collection. Phương thứ c. Moâ taû. Append. Theâ m moä t tham soá vaø o collection.. Delete. Xoá mộ t tham số trong collection.. Refresh. Cậ p nhậ t collection để phả n ánh sự thay đổ i cá c tham số .. Property. Moâ taû. Count. Traû veà soá tham soá trong collection.. Item. Laá y laï i giaù trò cuû a moä t tham soá trong collection.. Taï o vaø theâ m tham soá vaø o Collection Mỗ i mộ t phầ n tử củ a Parameter collection có thể coi như mộ t đố i tượ ng Parameter vaø chuù ng cuõ ng coù caù c ñaë c tính (property) rieâ ng cuû a mình. Property Attributes. Moâ taû Kiể u dữ liệ u mà tham số chấ p nhậ n. Löu haønh noä i boä.
<span class='text_page_counter'>(67)</span> 67. Direction. Tìm hieå u veà ASP. Thể hiệ n kiể u dữ liệ u mà tham số là Input hay Output, hay laø caû hai, hay nó là giá trị trả về từ mộ t thủ tụ c lưu trữ sẵ n (stored procedure).. Name. Teâ n cuû a tham soá .. NumericScale. Số chữ số thậ p phâ n trong tham số kieå u soá .. Precision. Số chữ số củ a tham số kiể u số.. Size. Kích thướ c lớ n nhấ t, tính theo byte, cuû a giaù trò tham soá .. Type. Kiể u dữ liệ u củ a tham số .. Value. Giaù trò gaùn cho tham soá .. Để tạ o mộ t đố i tượ ng Parameter mớ i, sử dụ ng phương thứ c CreateParameter củ a đố i tượ ng Command Cuù phaù p Set pamareter = command.CreateParameter(Name,Type,Direction,Size,Value) Để thê m mộ t tham số mớ i vào Parameter collection. Trướ c tiê n ta phả i tạ o mộ t thự c thể (instance) cho đố i tượ ng Parameter, sau đó thiế t lậ p cá c giá trị property cho nó và cuố i cù ng sử dụ ng phương thứ c Append. Ví dụ : tạ o mộ t tham số mớ i và thê m tham số nà y và o Parameter collection. Set objParam = objCmd.CreateParameter ( “State” , 128 , 1 , 2 , ”Ny” ) objCmd.Parameters.Append objParam Löu haønh noä i boä.
<span class='text_page_counter'>(68)</span> 68. Tìm hieå u veà ASP. Ví duï : <% ‘tạ o mộ t thự c thể của đố i tượ ng Command objCmd = Server.CreateObject(“ADODB.Command”) ‘taï o keá t noá i objConn.Open "DSN=student;uid=student;pwd=magic" objCmd.ActiveConnection = objConn.Open objCmd.CommandText="DeleteStateQuery" ‘cho biế t CommandText là mộ t thủ tụ c lưu trữ sẵ n objCmd.CommandType = 4 strValue=Request.Form(“txtState”) ‘khi submit từ mộ t form Set objParam = objCmd.CreateParameter ( “State” ) ‘chæ coù teâ n tham soá ObjParam.Type=adChar ‘ kieå u tham soá laø chuoã i ObjParam.Direction=adParamInput ‘moä t query ñöa vaø o tham soá ObjParam.Size=Len(strValue) ‘kích thướ c củ a chuỗ i ObjParam.Value=strValue ‘giaù trò chuoã i objCmd.Parameters.Append objParam ‘theâ m tham soá vaø o collection objCmd.Execute ‘thự c thi câ u lệ nh Set objCmd.ActiveConnection = Nothing ‘giả i phó ng tà i nguyê n đã sử dụ ng Löu haønh noä i boä.
<span class='text_page_counter'>(69)</span> 69. Tìm hieå u veà ASP. %> Tham khả o cá c đố i tượ ng collection Mỗ i khi chú ng ta có cá c tham số trong collection. Để lấ y giá trị củ a tham số trong collection ta có thể sử dụ ng Item property hoặ c sử dụng chỉ mục (index) hoặ c laø teâ n tham soá . Cuù phaù p objCmd.Parameters.Item(index) hoặ c objCmd.Parameters(index) hoặ c objCmd.Parameters.Item(tê n_tham_số ) hoặ c là objCmd.Parameters(tê n_tham_số ) Ví dụ : để lấ y giá trị củ a tham số State và 128 ở ví dụ trê n, ta có thể sử dụ ng caù c cuù phaù p objCmd.Parameters.Item(0) hoặ c objCmd.Parameters(0) hoặ c objCmd.Parameters.Item(“State”) hoặ c là objCmd.Parameters(“State”) tương tự objCmd.Parameters.Item(1) hoặ c objCmd.Parameters(1) hoặ c objCmd.Parameters.Item(128) hoặ c là objCmd.Parameters(128) Löu haønh noä i boä.
<span class='text_page_counter'>(70)</span> 70. Tìm hieå u veà ASP. Đọ c và hủy bỏ cá c tham số Chú ng ta có thể sử dụ ng vò ng lặ p For…Each để xuấ t ra tê n và giá trị củ a tấ t cả cá c tham số trong Parameter collection và đặ t chú ng trong trang hiệ n hà nh sử dụ ng phương thứ c Response.Write Ví duï : <% For Each objParam In objCmd.Parameters Response.Write “Parameter name = ” & objParam.Name & “<br>” Response.Write “Parameter value = ” & objParam.Value Next %> Để hủ y bỏ mộ t tham số trong Parameter collection, sử dụ ng phương thứ c Delete. Ví dụ : xoá tham số tê n State, chú ng ta có thể sử dụ ng tê n hoặ c chỉ mụ c củ a noù objCmd.Parameters.Delete “State” objCmd.Parameters.Delete 0 3. Đố i tượng Recordset. Bằ ng cá ch sử dụ ng cá c đố i tượng Connection và Command ta có thể thực thi cá c query để thê m và o, cậ p nhậ t hay xó a mộ t record trong data source. Tuy nhiê n trong cá c ứ ng dụ ng thì ta cũ ng phả i thự c hiệ n việ c lấ y ra mộ t số cá c record từ ADO, để hiể n thị giá trị củ a chú ng ta phả i sử dụ ng đố i tượ ng Recordset. Löu haønh noä i boä.
<span class='text_page_counter'>(71)</span> 71. Tìm hieå u veà ASP. Sử dụ ng Recordset để hiể n thị cá c record Mộ t Recordset có thể đượ c sử dụ ng để tượ ng trưng cho cá c record trong mộ t bả ng database. Nó có thể chứ a mộ t hoặ c nhiề u record (hà ng), mỗ i record có thể chứ a mộ t hoặ c nhiề u field (cộ t). Để tạ o mộ t thự c thể (instance) củ a đố i tượ ng Recordset, sử dụng phương thứ c Server.CreateObject : Set objRs = Server.CreateObject("ADODB.Recordset") 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 laë p thoâ ng qua caù c record. Ví duï : <% 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”) & “<br>” objRs.MoveNext Loop Löu haønh noä i boä.
<span class='text_page_counter'>(72)</span> Tìm hieå u veà ASP. 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 moã i record trong Recordset. Phương thứ c Refresh. Moâ taû Cậ p nhậ t collection để phả n ánh sự thay đổ i tớ i giá trị cá c field.. Property. Moâ taû. Count. Traû veà soá field trong collection.. Item. Laá y laï i noä i dung cuû a caù 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ú ý : chỉ số củ a cá c filed trong record đượ c đá nh số từ 0 cho tớ i giá objRs.Fields.Count-1.. Löu haønh noä i boä.
<span class='text_page_counter'>(73)</span> 73. Tìm hieå u veà ASP. Ví duï : hieå n thò taá t caû caù c haø ng vaø coä t trong moä t baûng <HTML> <HEAD> <TITLE>Dislay Database Example</TITLE> </HEAD> <BODY bgcolor="#FFFFFF"> <% 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 %> <TABLE border=1> <TR> ‘hieå n thò teâ n cuû a caùc field Löu haønh noä i boä.
<span class='text_page_counter'>(74)</span> 74. <% for i=0 to howmanyfields %> <TD><b><%= objRs (i).Name %></b></TD> <% Next %> </TR> ‘hieå n thò taá t caû caù c field trong Recordset <% Do While Not objRs.eof %> <TR> <% for i =0 to howmanyfields %> <TD><% = objRs (i) %></TD> <% Next %> </TR> <% objRs .movenext Loop objRs.close set objRs=nothing objConn.close set objConn=nothing %> </TABLE> </BODY> Löu haønh noä i boä. Tìm hieå u veà ASP.
<span class='text_page_counter'>(75)</span> 75. Tìm hieå u veà ASP. </HTML> Caù c kieå u con troû (Cursor)vaø khoù 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. Cuù phaù 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ữ saü n(stored procedure). ActiveConnection : Tê n củ a dt Connection đã được mở kế t nố i vớ i cơ sở dữ lieä u caà n laø m vieä 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 naø y seõ khoâ ng xuaá t hieä n trong Recordset. Löu haønh noä i boä.
<span class='text_page_counter'>(76)</span> 76. Tìm hieå u veà ASP. AdOpenDynamic : Coù theå duyeä t theo taá t caû caù c chieà u (leâ n, xuoá 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 : Baï n coù theå duyeä t theo taá t caû caù c chieà u (leâ n, xuoá 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ữ lieä u treâ n Recordset treâ n data source. adLockPessimistic : Mộ t record chỉ bị lock (khó a) khi bạ n gọi phương thứ c Update cuû 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í duï : <HTML> <HEAD> <TITLE>Cursor and Locking Example</TITLE> </HEAD> Löu haønh noä i boä.
<span class='text_page_counter'>(77)</span> 77. Tìm hieå u veà ASP. <% 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 %> </BODY> </HTML> 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 moä t Recordset. Phương thứ c. Moâ taû. AddNew. Thê m mộ t record mớ i và o Recordset.. Löu haønh noä i boä.
<span class='text_page_counter'>(78)</span> 78. Close. Tìm hieå u veà ASP. Đó 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 <HTML> <HEAD> <TITLE>AddNew Database Example</TITLE> </HEAD> <% 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”. Löu haønh noä i boä.
<span class='text_page_counter'>(79)</span> 79. Tìm hieå u veà ASP. objRs.Update objRs.close set objRs=nothing objConn.close set objConn=nothing %> </BODY> </HTML> Duyeä t caù c record treâ 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 chuyeå n vò trí cuû a record hieä n haø nh. MoveFirst : Dị ch chuyể n về record đầ u tiê n. MoveLast : Dò ch chuyeå n veà record cuoá i cuø ng. MoveNext : Dò ch chuyeå n veà record keá tieá p. MovePrevious : Dị ch chuyể n về record trướ c đó . Löu haønh noä i boä.
<span class='text_page_counter'>(80)</span> 80. Tìm hieå u veà ASP. 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 hieä n haø nh laø record laø record cuoá i cuø ng trong Recordset thì khi goï 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 laø cuoái cuø ng. Caù c property naø y coù yù 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. <HTML> <HEAD> <TITLE>AddNew Database Example</TITLE> </HEAD> <%. Löu haønh noä i boä.
<span class='text_page_counter'>(81)</span> 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 “<br>” & objRs(“Name”) objRs.MovePrevious Loop objRs.Close set objRs=Nothing objConn.Close set objConn=Nothing %> </BODY> </HTML> Löu yù : BOF vaø EOF coù caù c ñieå m sau: Löu haønh noä i boä. Tìm hieå u veà ASP.
<span class='text_page_counter'>(82)</span> 82. Tìm hieå u veà ASP. • 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 laø FALSE vaø record duy nhaá t trong recordset bò xoù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.. ,. Löu haønh noä i boä.
<span class='text_page_counter'>(83)</span>