ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
ASP:ACCESS Database
2
การติดตั้ง ODBC Active Server Pages สามารถติดต่อฐานข้อมูลโดยผ่าน Object Database Connectivity (ODBC). ในการใช้ ODBC เราจะต้องทำให้ฐานข้อมูลของเรารู้จัก ODBC ก่อน ฐานข้อมูลติดต่อกับ ODBC โดยผ่าน Data Source Name (DSN) ASP with Access
3
การสร้าง ODBC Data Source Name
1. ในวินโดว์ Control Panel ดับเบิ้ลคลิ๊กที่ไอคอน ODBC 2. เลือกแท็บ System DSN 3. คลิ๊กที่ปุ่ม Add… 4. จะปรากฏพร้อมพ์ให้ใส่ database driver ถ้าเป็น Access ให้เลือก Microsoft Access Driver (*.mdb). เลือกคลิ๊กปุ่ม finish 5. ต่อไปให้กำหนดค่า Data Source Name. สำหรับช่อง Description อาจละไว้ก็ได้ 6. ขั้นต่อไปให้เลือก database. โดยคลิกที่ปุ่ม Select… 7. ใช้วินโดว์เลือกชื่อฐานข้อมูลแล้วคลิก OK. ASP with Access
4
การจัดการฐานข้อมูลด้วย Active Server Pages
มีขั้นตอนทั้งหมด 4 ขั้นตอนดังนี้ 1. Create instance of database component set instance_name = Server.CreateObject("ADODB.Connection") เราใช้ instance_name ติดต่อกับฐานข้อมูล 2. Open a connection to the database instance_name.Open "data_source_name" เมื่อ data_source_name คือ DSN ที่ระบุใน ODBC ASP with Access
5
การจัดการฐานข้อมูลด้วย Active Server Pages
3. Create an Instance of the Recordset set recordset = Server.CreateObject("ADODB.recordset") recordset จะใช้เก็บผลของ query. โดยจะเก็บจำนวนของระเบียนซึ่งเป็นผลมาจากคำสั่ง SQL query 4. Execute the SQL statement and store the result recordset.Open query_name,instance_name,3 เมื่อ query_name คือสตริงที่เก็บคำสั่งของ SQL query และ 3 คือ parameter ที่ระบุ cursortype. ASP with Access
6
ตัวอย่างการติดต่อผ่าน DSN
เราได้กำหนด DNS ให้กับฐานข้อมูล recordsนี้โดยผ่าน ODBC แล้วชื่อว่า records ต่อไปนี้เป็นโปรแกรม ASP ที่ใช้ติดต่อกับฐานข้อมูลจากฐานที่กำหนด <% Query="Select Title,Artist from CDs ORDER by Artist" Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> ASP with Access
7
เมื่อเราแทรกส่วนของโปรแกรมต่อไปนี้ลงไป <HTML> <BODY> <%
Do While Not RSlist.EOF %> <%=RSlist("Title")%>, <%=RSlist("Artist")% ><BR> RSlist.Movenext Loop </BODY> </HTML> จะแสดงผลลัพธ์ในฐานข้อมูล ASP with Access
8
แสดงข้อมูลเป็นตาราง <HTML> <BODY>
<TABLE BORDER=1 CELLPADDING=0> <TR><TD><B>Title</B></TD><TD><B>Artist</B></TD></TR> <% Do While Not RSlist.EOF %> <TR> <TD><%=RSlist("Title")%></TD> <TD><%=RSlist("Artist")%></TD> </TR> RSlist.Movenext Loop </TABLE> </BODY> </HTML> ASP with Access
9
แสดงจำนวนระเบียน นอกจากนี้เรายังสามารถแสดงจำนวนระเบียนโดยแทรกคำสั่งต่อไปนี้ <BODY> Your search returned <B><%=RSlist.RecordCount%></B> records.<BR> <TABLE BORDER=1> ASP with Access
10
Querying Databases using HTML forms
ในการเขียนโปรแกรม Active Server Page เพื่อติดต่อกับฐานข้อมูลนั้นจะสามารถทำได้ง่ายเมื่อใช้ HTML forms เข้ามาดำเนินการ ต่อไปนี้จะกล่าวถึงการเขียนโปรแกรมดำเนินการกับcomponentของ forms ASP with Access
11
Text box และ WHERE (artist.html)
<FORM METHOD="GET" ACTION="artist.asp"> <H3>CD Search</H3> Enter an artist:<BR> <INPUT TYPE="TEXT" NAME="artist"> <P><INPUT TYPE="SUBMIT" VALUE="Search"> </HTML> ASP with Access
12
Query = "SELECT Title,Artist from CDs WHERE Artist LIKE '%"
เราสามารถใช้ สตริง VBScript มาเชื่อมต่อกันและส่งไปให้ ODBC driveได้ ดังแฟ้ม artist.asp, ต่อไปนี้ <% Query = "SELECT Title,Artist from CDs WHERE Artist LIKE '%" Query = Query & Request("artist") & "%'" Query = Query & " ORDER BY Artist" Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> ASP with Access
13
<TABLE BORDER=1>
<HTML> Your search returned <B><%=RSlist.RecordCount%></B> records.<BR> <TABLE BORDER=1> <TR><TD><B>Title</B></TD><TD><B>Artist</B></TD></TR> <% Do While Not RSlist.EOF %> <TR> <TD><%=RSlist("Title")%></TD> <TD><%=RSlist("Artist")%></TD> </TR> ASP with Access
14
<A HREF="artist.html">Return to form</A>
RSlist.Movenext Loop %> </TABLE> <A HREF="artist.html">Return to form</A> <HR><SMALL><%=Query%></SMALL> </HTML> ASP with Access
15
Radio button และ WHERE (format.html)
<FORM METHOD="GET" ACTION="format.asp"> <H3>CD Search</H3> Enter an artist:<BR> <INPUT TYPE="TEXT" NAME="artist"> <P>Select format<BR> Album <INPUT TYPE="RADIO" NAME="FORMAT" VALUE="Album"> Single <INPUT TYPE="RADIO" NAME="FORMAT" VALUE="Single"> Both <INPUT TYPE="RADIO" NAME="FORMAT" VALUE="Both" CHECKED> <P><INPUT TYPE="SUBMIT" VALUE="Search"> </HTML> ASP with Access
16
คำสั่ง If..Then… Elseif เพื่อจัดการกับอนุประโยค WHERE
คำสั่งที่ใช้ SELECT Title,Artist,Format from CDs WHERE Artist LIKE '% artist%' AND format='CDA' ORDER BY Artist คำสั่ง If..Then… Elseif เพื่อจัดการกับอนุประโยค WHERE ASP with Access
17
แฟ้ม format.asp <% format=Request("format")
Query="SELECT Title,Artist,Format from CDs WHERE Artist LIKE '%" Query=Query & Request("artist") & "%'" If format="Album" Then Query=Query & " AND format='CDA'" ElseIf format="Single" Then Query=Query & " AND format='CDS'" End If Query = Query & " ORDER BY Artist" ASP with Access
18
Drop down menu และ WHERE
เราสามารถใช้ผลของคำสั่ง SQL เพื่อนำมาแสดงใน drop-down box ได้ ตัวอย่างต่อไปนี้จะใช้ฐานข้อมูล books โดยมี DSN คือ books และมี 2 ตาราง ASP with Access
19
แฟ้ม subject.asp <% Query = "SELECT subject,subject_ID from subjects ORDER BY subject" Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "books" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> <HTML> <FORM METHOD="GET" ACTION="list.asp"> <H3>Book Search</H3> ASP with Access
20
Select a subject area:<BR> <SELECT NAME="subject"> <%
Do While Not RSlist.EOF %> <OPTION VALUE="<%=RSlist("subject_ID")%>"><%=RSlist("subject")%> RSlist.MoveNext Loop %> </SELECT> <P><INPUT TYPE="SUBMIT"> </FORM> </HTML> ASP with Access
21
แฟ้ม list.asp <% Query="SELECT * FROM books WHERE subject_ID=" & Request("subject") Query = Query & " ORDER BY title" Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "books" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> <HTML> <TABLE BORDER=1> <TR> <TD><B>Title</B></TD><TD><B>Surname</B></TD> </TR> ASP with Access
22
<TD><%=RSlist("Title")%></TD>
Do While Not RSlist.EOF %> <TR> <TD><%=RSlist("Title")%></TD> <TD><%=RSlist("surname")%></TD> </TR> RSlist.Movenext Loop </TABLE> <A HREF="subject.asp">Return to form</A> <HR><SMALL><%=Query%></SMALL> </HTML> ASP with Access
23
Drill-Down จากตัวอย่างที่ผ่านมาผู้ใช้แสดงชื่อหนังสือและผู้แต่งแต่ละเล่มถ้าผู้ใช้ต้องการแสดงรายละเอียดของชื่อเรื่องทั้งหมดเราสามารถสร้างได้โดยใช้ drill-down. เราสามารถแก้ไขแฟ้ม subject.asp และ list.asp ดังนี้ Newsubject.aspเป็น HTML Form ที่เรียกใช้ newlist Newlist.asp แสดงรายชื่อหนังสือทีมี link เชื่อมโยง bookdetails,asp แสกงรายละเอียดของหนังสือ ASP with Access
24
เราเปลี่ยนชื่อและแก้ไขแฟ้มเป็น newsubject.asp
เปลี่ยนแฟ้ม ASP เพื่อสร้างฟอร์ม subject.asp เพื่อเรียกใช้แฟ้ม ASP อื่นๆ ด้วยคำสั่ง<FORM METHOD="GET" ACTION="newlist.asp"> เราเปลี่ยนชื่อและแก้ไขแฟ้มเป็น newsubject.asp และเปลี่ยนคำสั่งใน list.asp จากตัวอย่างก่อนดังนี้ <TD><A HREF="bookdetails.asp?book_ID=<%=RSlist("ID")%>"> <%=RSlist("Title")%></A></TD> บรรทัดนี้จะแสดงชื่อหนังสือและเป็น link ที่เชื่อมโยงไปยังรายละเอียดของหนังสือเราทำได้โดยสร้างquery string ดังนี้ <A HREF="bookdetails.asp?book_ID=value_of_book_ID">link text</A> ASP with Access
25
แฟ้ม bookdetails.asp <%
Query="SELECT * FROM books WHERE ID=" & Request("book_ID") Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "books" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> <HTML> <H3><%=RSlist("title")%></H3><P> Author surname: <B><%=RSlist("surname")%></B><BR> Year: <B><%=RSlist("Year")%></B><BR> Size: <B><%=RSlist("Size")%></B><BR> Price: <B><%=RSlist("Price")%></B> ASP with Access
26
Modifying Database Records
เราสามารถแก้ไขฐานข้อมูลโดยใช้โปรแกรม ASP การเพิ่ม การลบ การแก้ไขระเบียน ASP with Access
27
Adding Records to a Database: addcds.html
<FORM METHOD="GET" ACTION="addcds.asp"> <H3>Add CD to Database</H3> <B>Artist</B><BR> <INPUT TYPE="TEXT" NAME="artist" MAXLENGTH="50"><P> <B>Title</B><BR> <INPUT TYPE="TEXT" NAME="title" MAXLENGTH="50"><P> <B>Format</B><BR> <INPUT TYPE="RADIO" NAME="format" VALUE="CDA" CHECKED> Album<BR> ASP with Access
28
<INPUT TYPE="RADIO" NAME="format" VALUE="CDS"> Single<P>
<INPUT TYPE="SUBMIT" VALUE="Add to database"><P> <INPUT TYPE="RESET" VALUE="Clear"> </FORM> </BODY> </HMTL> ASP with Access
29
แฟ้ม addcds.asp <% artist=Request("artist") title=Request("title")
format=Request("format") Query = "INSERT INTO CDs (artist,title,format) VALUES (" Query = Query & "'" & artist & "','" & title & "','" & format & "')" Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> ASP with Access
30
<H3>CD Added To Collection Database</H3> <HR>
<HTML> <BODY> <H3>CD Added To Collection Database</H3> <HR> <SMALL><%=Query%></SMALL> </BODY> </HTML> เราใช้คำสั่ง INSERT ที่มีรูปแบบดังนี้ INSERT INTO records (artist,title,format) VALUES ('value_of_artist','Value_of_title','Value_of_format') ASP with Access
31
Handling Errors เราสามารถตรวจสอบข้อผิดพลาดโดยการเปลี่ยนแปลงคำสั่งในแฟ้ม erroradd.asp <% On Error Resume Next this_page="erroradd.asp" artist=Request("artist") title=Request("title") format=Request("format") Query = "INSERT INTO CDs (artist,title,format) VALUES (" Query = Query & "'" & artist & "','" & title & "','" & format & "')" ASP with Access
32
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 If Err <> 0 Then %> <HTML> <BODY> <H3>An Error Occured</H3> Make a note of the following information and report it to Dave Smith x3343<P>SQL query:<BR> ASP with Access
33
<B><%=Query%></B><P>
Occured on page:<BR> <B><%=this_page%></B><P> Error Message:<BR> <B><%=Err.Description%></B> </BODY> </HTML> <% Else %> <HTML> <BODY> <H3>CD Added To Collection Database</H3> <%End If%> ASP with Access
34
Validating Data checkadd.asp แก้ไขจาก addcds.asp <%
artist=Request("artist") title=Request("title") format=Request("format") If artist="" or title="" Then %> <HTML> <BODY> <H3>Error - You must complete all the boxes</H3> </BODY> </HTML> <%Else Execute update query and display message <%End If%> ASP with Access
35
Using Client side scripting
ASP สามารถส่ง client-side scripting เช่นเดียวกับ JavaScript ซึ่งจะมีประโยชน์เมื่อใช้สำหรับตรวจสอบ Text box ที่ใช้กรอกข้อความว่ามีการป้อนข้อความหรือไม่ เนื่องจากมันสามารถทำงานบน client ได้ทำให้ประหยัดเวลาในการทำงาน ASP with Access
36
Checking the Query String for Single Quotes
จากแฟ้ม erroradd.html ถ้าเราป้อนข้อมูลฟิลด์ artist เป็น O'Conner,Sinead จะเกิดข้อผิดพลาดดังนี้ [Microsoft][ODBC Microsoft Access 97 Driver] Syntax error (missing operator) in query expression ''o'conner'. ข้อผิดพลาดเกิดมาจากคำสั่ง SQL มีแบบดังนี้ INSERT INTO CDs (artist,title,format) VALUES ( 'o'conner,sinead','Greatest Hits','CDA') ASP with Access
37
quote.asp <% FUNCTION CheckString (s) pos = InStr(s, "'")
Do While pos > 0 s = Mid(s, 1, pos) & "'" & Mid(s, pos + 1) pos = InStr(pos + 2, s, "'") Loop CheckString=s END FUNCTION artist=Request("artist") title=Request("title") format=Request("format") Query = "INSERT INTO CDs (artist,title,format) VALUES (" Query = Query & "'" & CheckString(artist) & "','" & CheckString(title) & "','" & format & "')" … Execute Query ASP with Access
38
Deleting Records <%
Query="SELECT ID,Title,Artist from CDs ORDER BY Artist" Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> <HTML> <BODY> <FORM ACTION="deleteme.asp" METHOD="GET"> <INPUT TYPE="SUBMIT" VALUE="Delete Selected CD"><P> <TABLE BORDER=1> <TR><TD><B>Title</B></TD><TD><B>Artist</B></TD><TD>Delete</TD></TR> ASP with Access
39
<TD><%=RSlist("Title")%></TD>
Do While Not RSlist.EOF %> <TR> <TD><%=RSlist("Title")%></TD> <TD><%=RSlist("Artist")%></TD> <TD> <INPUT TYPE=RADIO NAME="record_ID" VALUE="<%=RSlist("ID")%>"> </TD> </TR> RSlist.Movenext Loop </TABLE> </FORM> </BODY> </HTML> ASP with Access
40
โปรแกรม deleteme.asp <%
Query="DELETE from CDs WHERE ID=" & Request("record_ID") Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> <HTML> <BODY> <H3>CD Deleted from Database</H3> <A HREF="deletecd.asp">Return to list</A> </BODY> </HTML> ASP with Access
41
Modifying Records - UPDATE :listmod.asp
<% Query="SELECT * from CDs ORDER BY Artist" Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> <HTML> <BODY> Click on the CD you wish to modify <TABLE BORDER=1> <TR><TD><B>Title</B></TD><TD><B>Artist</B></TD></TR> Do While Not RSlist.EOF <TR> <TD> <A HREF="changeme.asp?ID=<%=RSlist("ID")%>"><%=RSlist("Title")%></A> </TD> <TD><%=RSlist("Artist")%></TD> </TR> RSlist.Movenext Loop </TABLE> </BODY> </HTML> โปร ASP with Access
42
<TD><%=RSlist("Artist")%></TD> </TR>
Do While Not RSlist.EOF %> <TR> <TD> <A HREF="changeme.asp?ID=<%=RSlist("ID")%>"><%=RSlist("Title")%></A> </TD> <TD><%=RSlist("Artist")%></TD> </TR> RSlist.Movenext Loop </TABLE> </BODY> </HTML> ASP with Access
43
changeme.asp <% ID=Request("ID")
Query="SELECT * from CDs WHERE ID=" & ID Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 artist=RSlist("artist") title=RSlist("title") %> ASP with Access
44
<FORM METHOD="GET" ACTION="update.asp">
<HTML> <BODY> <FORM METHOD="GET" ACTION="update.asp"> <INPUT TYPE="TEXT" NAME="title" VALUE="<%=title%>"><P> <INPUT TYPE="TEXT" NAME="artist" VALUE="<%=artist%>"><P> <INPUT TYPE="SUBMIT" VALUE="Update Database"><P> <INPUT TYPE="HIDDEN"NAME="ID" VALUE="<%=ID%>"> <A HREF="listmod.asp">Return to list</A> </FORM> </BODY> </HTML> ASP with Access
45
โปรแกรม update.asp <% title=Request("title")
artist=Request("artist") ID=Request("ID") Query="UPDATE CDs SET title='" & title & "',artist='" & artist & "'" Query=Query & " WHERE ID=" & ID Set DataConn = Server.CreateObject("ADODB.Connection") DataConn.Open "records" Set RSlist = Server.CreateObject("ADODB.recordset") RSlist.Open Query,DataConn,3 %> ASP with Access
46
<H3>Record changed</H3>
<HTML> <BODY> <H3>Record changed</H3> <P><A HREF="changeme.asp?ID=<%=ID%>">Check changes</A> <HR> <SMALL><%=Query%></SMALL> </BODY> </HTML> ASP with Access
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.