![]() | การเพิ่มข้อมูล access แบบ ADO + SQL | ![]() |
| ข้อควรทราบ |
สรุปแฟ้มที่ใช้ในบทเรียนนี้ ในกรณีที่ท่านงง และไม่แน่ใจ กับหน้าที่ของแต่ละแฟ้ม
|
| การเขียนตาราง ASCII แบบที่ 1 ด้วยวิธี ADO |
|
หัวข้อนี้จะใช้แฟ้มที่เกี่ยวข้อง 3 แฟ้มคือ /cgi-bin/member01.mdb และ /aspmema1.htm และ /aspmema1.asp 1. /aspmema1.htm เป็นฟอร์มสำหรับรับค่า แล้วส่งค่าให้ /aspmema1.asp 2. /aspmema1.asp จะทำหน้าที่เพิ่มระเบียนใหม่เข้าแฟ้ม /cgi-bin/member01.mdb ครั้งละ 1 ระเบียน 3. หลักการที่ใช้เพิ่มระเบียนคือ ADO และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/ |
| ตัวอย่างฟอร์ม /aspmema1.htm ส่งค่า |
|
Add new member 1(aspmema1.asp) ado Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
| Source code ของฟอร์ม /aspmema1.htm |
<body><font face="microsoft sans serif"> Add new member 1(aspmema1.asp) ado<br> <form action=http://thaiall.webhostme.com/aspmema1.asp method=post> ชื่อสมาชิก : <input type="text" name=name size=40><br> E-Mail : <input type="text" name=email size=40><br> ชื่อเว็บ : <input type="text" name=webname size=40><br> Webpage : <input type="text" name=address size=40 value="http://"><br> คำอธิบายเว็บ : <br><textarea rows=3 cols=40 name=describ></textarea><br> <input type=submit value="Add member"><input type=reset value=Reset> </form> </body> Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
| Source code ของโปรแกรมเพิ่มระเบียน /aspmema1.asp |
<%
thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
set conn=server.createobject("ADODB.Connection")
conn.open thaialldbaccess97
set rec = server.createobject("ADODB.Recordset")
sql = "select * from member"
rec.open sql, conn , 2, 2
rec.addnew
rec("name")=request.form("name")
rec("email")=request.form("email")
rec("webname")=request.form("webname")
rec("address")=request.form("address")
rec("describ")=request.form("describ")
rec.update
rec.close
conn.close
set conn = nothing
set rec = nothing
%>
<body>
Add ok
</body>
ดูเฉพาะ Source code เท่านั้น |
| การเขียนตาราง ASCII แบบที่ 2 ด้วยวิธี SQL |
|
หัวข้อนี้จะใช้แฟ้มที่เกี่ยวข้อง 3 แฟ้มคือ /cgi-bin/member01.mdb และ /aspmema2.htm และ /aspmema2.asp 1. /aspmema2.htm เป็นฟอร์มสำหรับรับค่า แล้วส่งค่าให้ /aspmema2.asp 2. /aspmema2.asp จะทำหน้าที่เพิ่มระเบียนใหม่เข้าแฟ้ม /cgi-bin/member02.mdb ครั้งละ 1 ระเบียน 3. หลักการที่ใช้เพิ่มระเบียนคือ SQL และแฟ้มทั้งหมดที่ทดสอบ ผมเก็บที่ thaiall.webhostme.com แต่คำอธิบายบทเรียนเก็บที่ www.thaiall.com/asp/ |
| ตัวอย่างฟอร์ม /aspmema2.htm ส่งค่า |
|
Add new member 2 (aspmema2.asp) sql Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
| Source code ของฟอร์ม /aspmema2.htm |
<body><font face="microsoft sans serif"> Add new member 2 (aspmema2.asp) sql<br> <form action=http://thaiall.webhostme.com/aspmema2.asp method=post> ชื่อสมาชิก : <input type="text" name=name size=40><br> E-Mail : <input type="text" name=email size=40><br> ชื่อเว็บ : <input type="text" name=webname size=40><br> Webpage : <input type="text" name=address size=40 value="http://"><br> คำอธิบายเว็บ : <br><textarea rows=3 cols=40 name=describ></textarea><br> <input type=submit value="Add member"><input type=reset value=Reset> </form> </body> Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
| Source code ของโปรแกรมเพิ่มระเบียน /aspmema2.asp |
<%
set connNews = server.createobject("ADODB.Connection")
connNews.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
sql = "INSERT into member ( name, email, webname, address, describ ) SELECT "
sql = sql & " '" & request.form("name") & "' as name, "
sql = sql & " '" & request.form("email") & "' as email, "
sql = sql & " '" & request.form("webname") & "' as webname, "
sql = sql & " '" & request.form("address") & "' as address, "
sql = sql & " '" & request.form("describ") & "' as describ; "
set rsArticles = connNews.Execute(sql)
connNews.close
set connNews = nothing
%>
<body>
Add ok
</body>
ดูเฉพาะ Source code เท่านั้น |
| การอ่านข้อมูลจากแฟ้ม /cgi-bin/member01.mdb มาแสดง |
|
โปรแกรมนี้มีส่วนของ form เพื่อสั่งประมวลผล asp และถ้าจะสั่งตรง ๆ จาก aspmeml.asp ก็ได้ เพราะโปรแกรมสั่งพิมพ์ ไม่จำเป็นต้องการรับค่าจาก ฟอร์มไปตรวจสอบ แต่อย่างใด และการได้ข้อมูลมาใช้หลักการของ ADO เป็นหลัก ส่วน SQL เป็นส่วนที่เข้ามาเสริม |
| ตัวอย่างฟอร์ม /aspmeml.htm ส่งค่า |
|
list all member Source ของ ฟอร์มข้างบนนี้ <body> list all member<br> <form action=http://thaiall.webhostme.com/aspmeml.asp method=post> <input type=submit value="list member"><input type=reset value=Reset> </form> </body> Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
| Source code ของโปรแกรมแสดงข้อมูล /aspmeml.asp |
<%
thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
Set rec = Server.CreateObject("ADODB.Recordset")
sql = "select * from member"
rec.Open sql, thaialldbaccess97
%>
<html><head><title>print all data</title></head>
<body bgcolor="#ffffff">
<%
if Not rec.eof then rec.MoveFirst
do while Not rec.eof
response.write( rec("name") &" - ")
response.write( rec("email") &"<br>")
response.write( rec("webname") &" - ")
response.write( rec("address") &"<br>")
response.write( rec("describ") &"<hr>")
rec.MoveNext
loop
%>
</body></html>
Click เรียกโปรแกรมพิมพ์ข้อมูลโดยไม่ผ่าน form (อ่านข้อมูลมาแสดง) |
| ทดลองลบระเบียนในแฟ้ม |
|
โปรแกรมนี้มีส่วนของ form เพื่อสั่งประมวลผล asp และถ้าจะสั่งตรง ๆ จาก aspmemd.asp ก็ได้ เพราะโปรแกรมสั่งลบข้อมูล โดยไม่จำเป็นต้องการรับค่าจาก ฟอร์มไปตรวจสอบ แต่อย่างใด และการลบข้อมูลใช้หลักการของ SQL เป็นหลัก ส่วน ADO เป็นส่วนที่เข้ามาเสริม |
| ตัวอย่างฟอร์ม /aspmemd.htm ส่งค่า |
|
Delete all member Source ของ ฟอร์มข้างบนนี้ <body> Delete all member<br> <form action=http://thaiall.webhostme.com/aspmemd.asp method=post> <input type=submit value="Delete member"><input type=reset value=Reset> </form> </body> Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
| Source code ของโปรแกรมแสดงข้อมูล /aspmemd.asp |
<%
thaialldbaccess97="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/cgi-bin/member01.mdb")
set conn=server.createobject("ADODB.Connection")
conn.open thaialldbaccess97
strSQL = "delete from member"
conn.execute (strSQL)
conn.close
set conn = nothing
%>
<body>
delete ok
</body>
Click เรียกโปรแกรมพิมพ์ข้อมูลโดยไม่ผ่าน form (สั่งลบข้อมูล) |
| แบบฝึกหัด |
|