asp ติดต่อฐานข้อมูล
DESCRIPTION
ASP ติดต่อฐานข้อมูล. รูปแบบการติดต่อกับฐานข้อมูล Server Object Connection Object Recordset Object. 1. Server Object. ปกติการใช้ Server Object จะใช้ในลักษณะการให้บริการเป็นหลัก และนอกจากนั้นยังมีฟังก์ชั่นสำหรับทำหน้าที่พิเศษต่าง ๆ อีกด้วย รูปแบบ Server.property | methode - PowerPoint PPT PresentationTRANSCRIPT
11
ASP ASP ติ�ดติ�อติ�ดติ�อฐานข้อมู�ลฐานข้อมู�ล
รู�ปแบบการูติ�ดติ�อก�บฐานข้อมู�ล Server Object
Connection Object
Recordset Object
22
Server ObjectServer Object
ปกติ�การใช้ Server Object จะใช้ในลั�กษณะการให้บร�การเป�น ห้ลั�ก แลัะนอกจากน��นยั�งมี�ฟั�งก�ช้� �นสำ!าห้ร�บทำ!าห้นาทำ��พิ�เศษติ%าง
ๆ อ�กด้วยั
รู�ปแบบ Server.property | methode
โดยมู� Property, Methode ที่��น�าสนใจด�งน�� ScriptTimeout CreateObject HTMLEncode MapPath URLEncode
33
ScriptTimeout (Property)
ใช้ก!าห้นด้ระยัะเวลัาในการประมีวลัผลัของ Script รู�ปแบบ Server.ScriptTimeout = nSeconds
nSeconds เป�นระยัะเวลัาทำ��มีากทำ��สำ+ด้ในการร�น Script โด้ยัปกติ�จะ ติ��งไวทำ�� 90 ห้น%วยัเป�น ว�นาทำ�
เราสำามีารถก!าห้นด้ระยัะเวลัาทำ��มีากทำ��สำ+ด้ในการร�น Script ได้โด้ยัใช้ คำ!าสำ��งด้�งน��
<%Server.ScriptTimeout = 200%>
ถาคำ+ณติองการทำราบเวลัาทำ��ใช้ในการร�น Script ได้โด้ยัใช้คำ!าสำ��งด้�งน�� <%Timeout =Server.ScriptTimeout %>
44
HTMLEncode (Method)
ใช้แปลัง String ให้อยั0%ในร0ปแบบ HTML รู�ปแบบ Server.HTMLEncode(String)
เช่�น <%=Server.HTMLEncode("<สำว�สำด้�คำร�บ>")%>
ผลัทำ��ได้คำ1อ&<สวัสดีครับ> แติ%ติองด้0
ผลัจาก Source ของ HTML
55
MapPath (Method)
ใช้ห้าติ!าแห้น%งทำ��แทำจร�งในการเก2บไฟัลั�รู�ปแบบ
Server.MapPath(Path ทำ��อยั0%ของไฟัลั�)
URLEncode แปลัง String ให้อยั0%ในร0ปแบบทำ��ใช้ก�บ URL ได้
รู�ปแบบ Server.URLEncode(String)
66
Connection Object Connection Object แนะน!า ADO Object Model ActiveX Data Objects คำ1อ ช้+ด้ของออบเจ2กติ�ทำ��ถ0กน!ามีาใช้ ในการ
ติ�ด้ติ%อก�บ Database Server สำ!าห้ร�บ ASP โด้ยัใช้ ADODB สำรางออบเจ2กติ�ทำ��เก��ยัวของก�บการ ติ�ด้ติ%อแลัะด้3งขอมี0ลั จากฐาน
ขอมี0ลั เพิ1�อมีาใช้งาน โด้ยัมี�ออบเจ2กติ�ติ%าง ๆ ทำ��เก��ยัวก�บ ADO ด้�งน��1. Command Object
เป�นออบเจ2กติ�คำ!าสำ��ง ทำ��ถ0กสำ%งไปเพิ1�อเอ2กซ์�คำ�วติ� ให้ได้เร2คำคำอร�ด้เซ์2ติ กลั�บมีาเป�นผลัลั�พิธ์� แลัะยั�งมี�คำวามีสำามีารถในการก!าห้นด้
พิารามี�เติอร� ติ%าง ๆ ไปก�บการสำ%งคำ!าสำ��งปกติ�ได้2. Connection Object
เป�นออบเจ2กติ� ทำ��ถ0กสำรางข3�นเพิ1�อเช้1�อมีติ%อก�บฐานขอมี0ลั3. Recordset Object
เป�นออบเจ2กติ� ทำ��ได้มีาจาก การสำ%งคำ!าสำ��งเพิ1�อให้ได้เร2คำคำอร�ด้เซ์2ติ เป�นผลัลั�พิธ์�กลั�บมีา
77
การูติ�ดติ�อก�บฐานข้อมู�ล โดยผ่�านODBC,DSNLess และ OLEDB
1.การูติ�ดติ�อผ่�าน ODBC
ก%อนจะติ�ด้ติ%อผ%าน ODBC คำ+ณติองทำ!าการ Set Dsn ก%อน พิ0ด้ ง%ายั ๆ ก2คำ1อ การ Set Driver เพิ1�อให้ร0 จ�กก�บฐานขอมี0ลัน��นเอง
ห้ลั�งจาก Set Dsn เร�ยับรอยัแลัว ในทำ��น��ติ� �งช้1�อ Dsn เป�นDatabase
ข้��นติ�อไปก$ติ�ดติ�อก�บฐานข้อมู�ล รู�ปแบบการูติ�ดติ�อ Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Dsn-name" ,"[userName]" , "[password]"
88
เมู%�อConn : เป�นการสำรางออบเจ2กติ�ให้มี%ช้1�อว%า ConnDsn-name : คำ1อช้1�อ Dsn userName : ช้1�อผ0มี�สำ�ทำธ์�ใช้ฐานขอมี0ลั ถาไมี%มี�ใสำ% "" (ว%าง) password : รห้�สำผ%านการใช้ฐานขอมี0ลัของผ0ใช้userName ถาไมี%มี�ใสำ "" (ว%าง)
99
เมู%�อน!ามูาใช่ก�บ Dsn ที่��สรูางข้��นมูาจะได
Set Conn = Server.CreateObject("ADODB.Connection")Conn.Open "Dsn-name" ,"" , ""
สำ!าห้ร�บการติ�ด้ติ%อก�บฐานขอมี0ลัก2เป�นอ�นเสำร2จ สำ%วนเร1�องการ ด้3งขอมี0ลัมีาให้ เราจะได้เร�ยันร0 ในห้�วขอติ%อไป
เพิ่��มูเติ�มู ขอเสำ�ยัของว�ธ์�น��คำ1อ Server ติอง Support ก�บการ เช้1�อมีฐานขอมี0ลัแบบ ODBC แลัะ เราติองเสำ�ยัเวลัาไป Set คำ%า
ใน Dsn Server
1010
2. การูติ�ดติ�อผ่�าน DsnLess
ว�ธ์�น��จะแติกติ%างจากว�ธ์�ผ%าน ODBC คำ1อไมี%ติอง ก!าห้นด้ DSN ทำ�� ODBC แติ%เรา ก!าห้นด้ลังในติ�ว asp
script เลัยั
สำ!าห้ร�บการแกไขการ Set แบบ DsnLess ว�ธ์�น��คำ1อ การเข�ยันไฟัลั�สำ!าห้ร�บการ Include
1111
รู�ปแบบการูติ�ดติ�อ Set Conn = Server.CreatteObject("ADODB.Connection")
Conn.Open "Driver={database_driver} ; DBQ = drive:\path[\database_name]"
database_driver : Driver สำ!าห้ร�บฐานขอมี0ลั ทำ��จะใช้ มี�ห้ลัายั drive เช้%น FoxPro ก!าห้นด้ด้�งน�� Driver ={Microsoft FoxPro Driver(*.dbf)};DBQ=drive:\path ทำ��เก2บไฟัลั� .dbf Access ก!าห้นด้ด้�งน�� Driver ={Microsoft Access Driver(*.mdb)};DBQ=drive:\path\ช้1�อฐานขอมี0ลั.mdbdrive:\path : ช้1�อ Drive แลัะ Directory ทำ��เก2บฐานขอมี0ลัdatabase_name : ช้1�อฐานขอมี0ลั ยักเวนถาเป�น ฐานขอมี0ลัติระก0ลัFoxBase,FoxPro, dBase ไมี%ติองระบ+
1212
ติ�วอยั%าง Set Conn = Server.CreatteObject("ADODB.Connection")
Conn.Open "Driver ={Microsoft Access Driver(*.mdb)};DBQ=C:\Inetpub\wwwroot\db\database.mdb"
จากติ�วอย�างที่��ผ่�านมูาจะเห็$นว�าสามูารูถใช่ไดก�บ path ที่��เป*น Drive เที่�าน��น ถาห็ากใช่บน Server จะเก�ดป+ญห็าเรู%�องไมู�สามูารูถติ�ดติ�อก�บฐานข้อมู�ลได
เรูาสามูารูถแกป+ญห็าน��ไดโดย ก!าห็นดเป*น Server.MapPath
ติ�วอย�าง Set Conn=Server.Createobject("ADODB.Connection")
Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/database.mdb"),"" , ""
ห้มีายัเห้ติ+ ,"","" คำวามีห้มีายัคำ1อ ,"[username]","[password]" คำ1อUsername แลัะ รห้�สำผ%านฐานขอมี0ลัในกรณ�ทำ��มี� ถาไมี%มี�ให้ปลั%อยัว%างเอาใว
1313
เพิ่��มูเติ�มูอ�กน�ดห็น-�ง Method ที่��น�าสนใจ ส!าห็รู�บConnection .Open : เป�นการเป7ด้การเช้1�อติ%อก�บ DSN ช้1�อ
mydsn ทำ��ก!าห้นด้ไวทำ�� ODBC.Close : เป�นการเลั�กการติ�ด้ติ%อก�บ DSN.Execute(strSQL) : เป�นการติ�ด้ติ%อเพิ1�อประมีวลั
ผลัขอมี0ลั จากฐานขอมี0ลั โด้ยัใช้สำติร�งทำ��เก2บคำ!าสำ��งSQL ทำ��ติองการกระทำ!าก�บฐานขอมี0ลัเพิ1�อให้ได้ขอมี0ลัทำ��ติองการ
1414
3. การูติ�ดติ�อผ่�าน OLEDB การติ�ด้ติ%อฐานขอมี0ลัในแบบสำ+ด้ทำายัทำ��จะกลั%าวถ3งคำ1อแบบ
OLEDB ห้ร1อ (Object Link Embedding Database) OLEDB จะมี�โพิรไวเด้อร� (provider) ทำ!าห้นาทำ��คำลัายัก�บ
ได้ร�เวอร�ในระบบการติ�ด้ติ%อฐานขอมี0ลั แบบ DNS แลัะDNSLess
แติ%โพิรไวเด้อร�จะมี�ลั�กษณะพิ�เศษกว%า คำ1อมี�การติ�ด้ติ%อก�บฐานขอมี0ลัทำ��เร2วกว%าแลัะรองร�บการใช้ฐานขอมี0ลัแบบสำ�มีพิ�นธ์� (Relational Database) เป�นติน
1515
การูติ�อติ�อฐานข้อมู�ลในรู�ปแบบข้อง OLEDB จะมู�รู�ปแบบด�งน��
Set strCon = Server.CreateObject("ADODB.Connection")strCon.Open "PROVIDER=ช้1�อโพิรไวเด้อร�; DATA SOURCE=ช้1�อไฟัลั�ห้ร1อเซ์�ร�ฟัเวอร�; INITIAL CATALOG =ช้1�อฐานขอมี0ลั;USER ID=ช้1�อผ0ใช้;PASSWORD=รห้�สำผ%าน"
เช่�นการูติ�ดติ�อก�บฐานข้อมู�ลที่��ที่��เก$บอย��ใน Drive Set Conn= Server.CreateObject("ADODB.Connection")Conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\database.mdb"
1616
ห็รู%อถาคุ/ณติองการูเรู�ยกไฟล2ที่��อย��ใน path ข้องServer
Set Conn = Server.CreateObject("ADODB.Connection")Conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/database.mdb")
1717
Recordset Object
เป�นการด้3งขอมี0ลัจากฐานขอมี0ลัมีาแสำด้งโด้ยัใช้Recordset เพิ1�อคำวบคำ+มีสำถานะการแสำด้งผลัติ%าง ๆ
ก�อนที่��จะศึ-กษาที่!าคุวามูเข้าใจเก��ยวก�บ การูเรู�ยกใช่ ข้อมู�ลในติารูาง โดยใช่ SQL Statement คำ1อ
การน!าคำ!าสำ��ง Sql มีาเพิ1�อทำ!าการเลั1อกติารางห้ร1อเลั1อกขอมี0ลัในติาราง
1818
ติ�วอย�าง Sql="Select * From member"
' เป�นการก!าห้นด้ Object Sql เพิ1�อเลั1อกติาราง member รู�ปแบบ Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open sql, Conn , 1 , 3
เมู%�อRS : เป�นติ�วแปร Recordset ทำ��มีาร�บขอมี0ลัจากฐานขอมี0ลัsql : เป�นสำติร�งทำ��เก2บคำ!าสำ��ง SQL ทำ��ติองการกระทำ!าก�บฐาน
ขอมี0ลัเพิ1�อให้ได้ขอมี0ลัทำ��ติองการConn : เป�นติ�วแปรออบเจ2กติ� Connection
19
คุ!าส��งrs.Open Source, Connection, CursorType, LockType, Option
Source คำ1อแห้ลั%งทำ��มีาของขอมี0ลัสำ%วนมีากจะเป�นคำ!าสำ��ง SQLConnection คำ1อการติ�ด้ติ%อฐานขอมี0ลั ซ์3�งปกติ�จะอยั0%ในร0ปแบบของ Object
ConnectionCursorType น��นจะห้มีายัถ3งช้น�ด้การเลั1�อนของ pointer
LockType น��นจะเป�นช้น�ด้การ Lock ของ Cursor ซ์3�งมี�คำวามีสำ�มีพิ�นธ์�โด้ยัติรงก�บCursorType
CursorType adOpenForwardOnly มี�คำ%า CursorType เทำ%าก�บ 0(ถาเราไมี%ก!าห้นด้มี�นก2
จะถ1อเป�น 0 คำ1อคำ%าติ��งติน ) adOpenKeySet มี�คำ%า CursorType เทำ%าก�บ 1 adOpenDynamic มี�คำ%า CursorType เทำ%าก�บ 2 adOpenStatic มี�คำ%า CursorType เทำ%าก�บ 3
ติ�วอย�าง RS.Open sql, Conn , 1 , 3
20
CursorType ติ%อ adOpenForwardOnly
การก!าห้นด้ CursorType เป�นคำ%าน�� ( คำ%า 0 ) จะเป�นการให้ pointer เลั1�อนขอมี0ลัไป ขางห้นาเพิ�ยังอยั%างเด้�ยัว ไมี%สำามีารถยัอนห้ลั�งได้ กลั%าวคำ1อขอมี0ลัทำ��แสำด้งจะเร��มีติน
จากขอมี0ลัทำ�� 1 แลัวจ3งไปขอมี0ลัทำ�� 2 จะเร��มีจาก 2 แลัวยัอนมีา 1 ไมี%ได้ การเลั1�อน pointer ในลั�กษณะน��จะทำ!าได้เร2วแลัะไมี%สำ��นเปลั1องห้น%วยัคำวามีจ!าของ
Server มีากน�กเน1�องจากไมี%มี�การถ%ายัโอนขอมี0ลัมีาเก2บไวในห้น%วยัคำวามีจ!า (RAM) ด้�งน��ว�ธ์�การน��เห้มีาะสำ!าห้ร�บการแสำด้งขอมี0ลัเพิ�ยังอยั%างเด้�ยัว
adOpenKeySet การก!าห้นด้เลั1�อน pointer แบบน��จะเป�นการก!าห้นด้ให้ pointer เลั1�อนไปมีาได้อยั%าง
อ�สำระทำ��งไปขางห้นา แลัะไปขางห้ลั�ง ห้ร1อจะเลั1�อนจากห้ลั�งก%อน แลัวคำ%อยัมีาห้นาก2ได้ แลัวแติ%ว%าเราจะก!าห้นด้ให้ pointer ไปอยั0%ทำ��ไห้น เมี1�อใด้ก2ติามีทำ��มี�ผ0ใช้งานคำนอ1�นเขา
มีาเปลั��ยันแปลังขอมี0ลัในฐานขอมี0ลัเราก2จะเห้2นการเปลั��ยันแปลังน��นด้วยั แติ%ถาเป�นการเพิ��มีห้ร1อลัด้ขอมี0ลัแลัว เราจะไมี%เห้2นการเปลั��ยันแปลังน��นสำาเห้ติ+เพิราะ
ติ!าแห้น%งของ pointer ได้ถ0กก!าห้นด้ไวติ��งแติ%ติอนติ�ด้ติ%อฐานขอมี0ลัทำ�แรกแลัว ด้�งน��นถาเราอยัากเห้2นการเปลั��ยันแปลังเราติองใช้ Method Requery เพิ1�อเร�ยักด้0
ขอมี0ลัให้มี%อ�กคำร��งห้น3�ง
21
CursorType ติ%อ adOpenDynamic
การก!าห้นด้เลั1�อน pointer แบบน��จะเป�นการก!าห้นด้ให้ pointer เลั1�อนไปมีาได้อยั%างอ�สำระ ทำ��งไปขางห้นา แลัะไปขางห้ลั�ง ห้ร1อจะเลั1�อนจากห้ลั�งก%อน แลัวคำ%อยัมีาห้นาก2ได้ แลัวแติ%ว%า เราจะก!าห้นด้ให้ pointer ไปอยั0%ทำ��ไห้น เมี1�อใด้ก2ติามีทำ��มี�ผ0ใช้งานคำนอ1�นเขามีาเปลั��ยันแปลัง
ขอมี0ลัในฐานขอมี0ลัเราก2จะเห้2นการเปลั��ยันแปลังน��นด้วยัแลัะยั��งไปกว%าน��นเรายั�งสำามีารถมีองเห้2นขอมี0ลัป�จจ+บ�นได้ติลัอด้เวลัาไมี%ว%าขอมี0ลัจะเพิ��มี
ห้ร1อลัด้ลัง ทำ��กระทำ!าโด้ยัผ0ใช้รายัอ1�นก2ติามี
สำาเห้ติ+ก2เพิราะว%าการเลั1�อ point แบบน��จะมี�การถ%ายัโอนขอมี0ลัไปไวทำ��ห้น%วยัคำวามีจ!าก%อน แลัะมี�การอ�พิเด้ทำขอมี0ลัให้มี%เร1�อยัๆในห้น%วยัคำวามีจ!าเสำมีอ แลัวจ3งจะแสำด้งให้เราด้0อ�กทำ�
แติ%ก2มี�ขอเสำ�ยัติรงทำ��สำ��นเปลั1องห้น%วยัคำวามีจ!ามีากน��นเอง ซ์3�งการก!าห้นด้ CursorType ในลั�กษณะน��เห้มีาะก�บกรณ�ทำ��ติองอ�พิเด้ทำขอมี0ลับ%อยัๆ
adOpenStatic การก!าห้นด้เลั1�อน pointer แบบน��จะเป�นในลั�กษณะเด้�ยัวก�นก�บแบบ adOpenDynamic
เพิราะมี�การถ%ายัโอนขอมี0ลัเขาห้%วยัคำวามีจ!า แติ%ก2มี�จ+ด้ทำ��แติกติ%างก�นอยั%างสำ��นเช้�งก2คำ1อ การก!าห้นด้ในแบบน��จะไมี%มี�การอ�พิเด้ทำขอมี0ลั
ให้มี%ๆ ลังในห้น%วยัคำวามีจ!าเลัยั ด้�งน��นขอมี0ลัทำ��ได้ก2จะเป�นขอมี0ลัเด้�มีๆ ทำ��ไมี% มี�การเปลั��ยันแป ลังใด้ๆ อยั%างไรก2ติามีถาเราติองการด้0ขอมี0ลัให้มี% เราก2ใช้ Method Reqyery เช้%นเด้�ยัว ก�บแบบ adOpenKeySet
22
LockType
adLockReadOnly มี�คำ%า LockType เทำ%าก�บ 1 (ถาเราไมี%ก!าห้นด้มี�นก2จะ ถ1อเป�น 1 คำ1อคำ%าติ��งติน )
adLockPessimistic มี�คำ%า LockType เทำ%าก�บ 2 adLockOptimistic มี�คำ%า LockType เทำ%าก�บ 3 adLockBatchOptimistic มี�คำ%า LockType เทำ%าก�บ 4
adLockReadOnly เมี1�อก!าห้นด้ว�ธ์�การปกป8องขอมี0ลัในร0ปแบบน��แลัว ผ0ใช้จะสำามีารถอ%านได้
เพิ�ยังอยั%างเด้�ยัว ไมี%สำามีารถเพิ��มี ลับ ห้ร1อแกไขขอมี0ลัใด้ๆได้
adLockPessimistic เมี1�อก!าห้นด้ว�ธ์�การปกป8องขอมี0ลัในร0ปแบบน��แลัวผ0ใช้จะสำามีารถ
เปลั��ยันแปลังแกไขขอมี0ลัได้ แติ%จะทำ!าได้คำลั��งลัะเพิ�ยังคำนเด้�ยัวเทำ%าน��น คำ1อไมี% สำามีรถเปลั��ยันแปลังได้พิรอมีๆก�น
23
LockType ติ�อ adLockOptimistic
เมี1�อก!าห้นด้ว�ธ์�การปกป8องขอมี0ลัในร0ปแบบน��แลัวผ0ใช้จะสำามีารถ เปลั��ยันแปลังแกไขขอมี0ลัได้ โด้ยัสำามีารถกระทำ!าพิรอมีก�นได้ห้ลัายัๆ
คำน แติ%การแกไขจะเป�นไปทำ�ลัะ 1 รายัการ ห้ร1อ 1 Record เทำ%าน��น ถา มี�การเปลั��ยันแปลังขอมี0ลัทำ�� 1 แลัว pointer เลั1�อนไปติ!าแห้น%งทำ�� 2
เพิ1�อแกไขติ%อไป ADO ก2จะเร�ยัก Method Update ข3�นมีาให้เองเพิ1�อจ�ด้เก2บขอมี0ลัทำ��แกไขลังฐานขอมี0ลัก%อน
adLockBatchOptimistic ว�ธ์�การปกป8องขอมี0ลัในร0ปแบบน��จะคำลัายัก�บว�ธ์� adLockOptimistic
แติ%ว%าว�ธ์�น��จะสำามีารถแกไขขอมี0ลัได้ทำ�ลัะมีากๆ จ3งเห้มีาะทำ��จะใช้งานในกรณ�บางอยั%างเช้%น
ติองการแกไขรห้�สำสำมีาช้�กทำ��ข3�นตินด้วยั A ก2สำามีารถเข�ยันโปรแกรมี วนลั0ปแกไขในฐานขอมี0ลัก%อน จากน��นจ3งทำ!าการอ�พิเด้ทำลังฐานขอมี0ลัทำ�
เด้�ยัวเลัยั
2424
ติ�วอย�าง Set Conn=Server.Createobject("ADODB.Connection")
Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""Sql="Select * Form member" Set RS = Server.CreateObject("ADODB.Recordset")RS.Open sql, Conn , 1 , 3
ว�ธี�น��สามูารูถเรู�ยกใช่ Property และ Method ไดเพิ่��มูข้-�นจากว�ธี� Dynamic คุ%อ
RS.Open : เป�นออบเจ2กติ�สำ!าห้ร�บ การเป7ด้ Recordset RS.RecordCount : บอกจ!านวน record ทำ��งห้มีด้RS.PageSize : ใช้ก!าห้นด้ว%าแติ%ลัะห้นาจะให้มี�ก��รายัการ ในการแสำด้งผลัRS.PageCount : น�บจ!านวนห้นาทำ��งห้มีด้ ทำ��ได้จากการก!าห้นด้ขนาด้ของห้นาRS.AbsolutePage : ใช้อางอ�งไปยั�งห้นาทำ��ติองการ
2525
ช้1�อ ฐานขอมี0ลั \db\member.mdb ช้1�อติาราง member
ช่%�อ Field- ID- Name- Surname- Nickname
- User
- Password
- Type
2626
ติ�วอย�าง sam10-1.asp<%Set Conn=Server.Createobject("ADODB.Connection")
Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""'ห้ร1อจะใช้เป�น Conn.Open "Dsn-name","",""sql ="Select * From member"Set Rs=Server.CreateObject("ADODB.Recordset")Rs.Open sql, Conn, 1,3
If Rs.EOF Then%>ไมี%มี�ขอมี0ลัในติาราง !
<%Else' น�บรายัการทำ��งห้มีด้TotalRecord = Rs.RecordCount
' ติองการให้แสำด้งห้นาลัะ 10 รายัการRs.PageSize = 10
' จ!านวนห้นาทำ��งห้มีด้ทำ��จะเก�ด้ข3�นTotalPage = Rs.PageCount
'เลั1�อนรายัการไปห้นาทำ��ติองการPageNo = 1Rs.AbsolutePage =PageNo %>
<table border="1"><tr bgcolor="Silver"> <td>รห้�สำน�กศ3กษา</td><td>ช้1�อ</td><td>นามีสำก+ลั</td><td>ช้1�อเลั%น</td></tr>
Sam10-1.asp
2727
ติ�วอย�าง sam10-1.asp (ติ�อ)<% row = 1
While Not Rs.EOF and row<=Rs.PageSize%><tr><td><%= Rs("ID")%></td><td><%= Rs("Name")%></td><td><%= Rs(“SurName")%></td><td><%= Rs("Nickname")%></td></tr><% Rs.MoveNext
row = row +1 Wend
Rs.CloseConn.CloseEnd If%><tr><td colspan="4"> ห้นาทำ�� :<b> <%=PageNo%> </b> ของทำ��งห้มีด้<b><%= TotalPage %></b>
ห้นา <br> รายัการทำ��งห้มีด้ :<b><%= TotalRecord %></b> </td>
</tr></table>
2828
Out put
2929
รู�ปแบบการูติ�ดติ�อข้อมู�ลแบบ Dynamic Recordset Static Recordset
3030
รู�ปแบบการูติ�ดติ�อข้อมู�ลแบบ Dynamic Recordset
เป�นการด้3งขอมี0ลัจากฐานขอมี0ลัมีาแสำด้งโด้ยัไมี%ได้ใช้Recordset เพิ1�อคำวบคำ+มีสำถานะการแสำด้งผลัติ%าง
รู�ปแบบ Set RS = Conn.Execute(sql) เมู%�อ
RS : เป�นติ�วแปร Recordset ทำ��มีาร�บขอมี0ลัจากConn.Execute(sql) sql : เป�นสำติร�งทำ��เก2บคำ!าสำ��ง SQL ทำ��ติองการกระทำ!าก�บฐานขอมี0ลัเพิ1�อให้ได้ขอมี0ลัทำ��ติองการ
3131
ติ�วอยั%าง Set Conn=Server.Createobject("ADODB.Connection")Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""Sql="Select * from Table"Set RS = Conn.Execute(sql)
3232
สำามีารถเร�ยักใช้ Property แลัะMethod ได้ด้�งน�� RS.Close : เป�นออบเจ2กติ�สำ!าห้ร�บ การป7ด้
Recordset RS.MoveNext : เป�นออบเจ2กติ�สำ!าห้ร�บ การเลั1�อน Record ไป 1 Record RS.EOF : เป�นออบเจ2กติ�ติรวจสำอบ End of File RS.BOF : เป�นออบเจ2กติ�ติรวจสำอบ Begin of File RS.Fields.Count : บอกจ!านวน field RS.Fields.name : บอกช้1�อ field RS.Fields.Items("field") : ระบ+ช้1�อ filed RS.Fields.Items("field").value : ระบ+ช้1�อ filed แลัะแสำด้งคำ%าใน field น��นออกมีา
3333
ติ�วอย�าง ช่%�อติารูาง member
ช่%�อ Filed- ID- Name- Surname- Nickname
3434
ติ�วอย�าง Sam10-2.asp<%
Set Conn=Server.Createobject("ADODB.Connection")Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""' ห้ร1อจะใช้เป�น Conn.Open "Dsn-name","",""Set Rs = Conn.Execute("member")' อาจจะใช้เป�น' Sql="Select * From member"' Set Rs = Conn.Execute("Sql")
If Rs.EOF Then%>
ไมี%มี�ขอมี0ลัในติาราง !<%Else%><table border="1"><tr bgcolor="Silver"><td>รห้�สำน�กศ3กษา</td><td>ช้1�อ</td><td>นามีสำก+ลั</td><td>ช้1�อเลั%น</td>
3535
ติ�วอย�าง Sam10-2.asp (ติ�อ) </tr>
<% While Not Rs.EOF%><tr><td><%= Rs("Id")%></td><td><%= Rs("name")%></td><td><%= Rs("Surname")%></td><td><%= Rs("Nickname")%></td></tr><% Rs.MoveNextWendRs.CloseConn.CloseEnd If%></table>
3636
Out Put
37
การูที่!า login Form<HTML><BODY>ฟัอร�มี Login<FORM METHOD=POST ACTION=“chk_login.asp">User:<INPUT TYPE="text" NAME="User" size="15"><BR>Password:<INPUT TYPE="Password" NAME="Password"
size="15"><BR><INPUT TYPE="submit" Value="Login"><INPUT TYPE="reset" Value="Cancel"></FORM></BODY></HTML>
LoginForm.asp
38
ไฟล2 chk_login.asp<% Set Conn=Server.Createobject("ADODB.Connection") Conn.Open "DRIVER=Microsoft Access Driver
(*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""
‘ห้ร1อจะใช้ Conn.Open "member","","" sql ="Select * From member where user
='"&Request.Form("user")&"' and Password='"&Request.Form("Password")&"'"
Set Rs = Conn.Execute(sql)If Rs.EOF Then%>ไมี%พิบขอมี0ลั<%Else%> ยั�นด้�ติอนร�บ <Br> คำ+ณ <%= Rs("Name")%> <%= Rs("SurName")%> ‘ อาจจะเร�ยักไฟัลั�อ1�นๆได้ ห้ลั�ง login สำ!าเร2จ ‘ Response.redirect ”mainmenu.asp”<%end ifRs.CloseConn.Close%>
3939
แบบฝึ8กห็�ดID Name Surname Nickname
มี�ทำ��งห้มีด้ 39 รายัการไปห้นาทำ�� 1 2 3 4 5
•น!าขอมี0ลัจากฐานขอมี0ลัออกมีาแสำด้ง•แสำด้งแติ%ลัะเรคำอร�ด้ให้สำลั�บสำ�บรรทำ�ด้•โด้ยัให้สำามีารถลั��งคำ�ไปห้นาติ%างๆได้ด้วยั•โด้ยัแสำด้งขอมี0ลัห้นาลัะ 8 เรคำอร�ด้