1 / 49

ASP:ACCESS Database

ASP:ACCESS Database. การติดตั้ง ODBC. Active Server Pages สามารถติดต่อฐานข้อมูลโดยผ่าน Object Database Connectivity (ODBC). ในการใช้ ODBC เราจะต้องทำให้ฐานข้อมูลของเรารู้จัก ODBC ก่อน ฐานข้อมูลติดต่อกับ ODBC โดยผ่าน Data Source Name (DSN). การสร้าง ODBC Data Source Name.

dorie
Download Presentation

ASP:ACCESS Database

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. เราสามารถใช้ สตริง 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. <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. 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) <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. คำสั่งที่ใช้ • 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. <% 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. เปลี่ยนแฟ้ม 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 <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. <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> </BODY> </HTML> <%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. <% 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. <% 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. <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. <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

  47. ASP with Access

  48. ASP with Access

  49. ASP with Access

More Related