39
1 ตตตตตตตตต ตตตตตตตตต ตตตตตต ตตตตตต ตตตตตตตตตตตตตตตตตตตตต ตตตตตต Server Object Connection Object Recordset Object

ASP ติดต่อฐานข้อมูล

Embed Size (px)

DESCRIPTION

ASP ติดต่อฐานข้อมูล. รูปแบบการติดต่อกับฐานข้อมูล Server Object Connection Object Recordset Object. 1. Server Object. ปกติการใช้ Server Object จะใช้ในลักษณะการให้บริการเป็นหลัก และนอกจากนั้นยังมีฟังก์ชั่นสำหรับทำหน้าที่พิเศษต่าง ๆ อีกด้วย รูปแบบ Server.property | methode - PowerPoint PPT Presentation

Citation preview

Page 1: ASP  ติดต่อฐานข้อมูล

11

ASP ASP ติ�ดติ�อติ�ดติ�อฐานข้อมู�ลฐานข้อมู�ล

รู�ปแบบการูติ�ดติ�อก�บฐานข้อมู�ล Server Object

Connection Object

Recordset Object

Page 2: ASP  ติดต่อฐานข้อมูล

22

Server ObjectServer Object

ปกติ�การใช้ Server Object จะใช้ในลั�กษณะการให้บร�การเป�น ห้ลั�ก แลัะนอกจากน��นยั�งมี�ฟั�งก�ช้� �นสำ!าห้ร�บทำ!าห้นาทำ��พิ�เศษติ%าง

ๆ อ�กด้วยั

รู�ปแบบ Server.property | methode

โดยมู� Property, Methode ที่��น�าสนใจด�งน�� ScriptTimeout CreateObject HTMLEncode MapPath URLEncode

Page 3: ASP  ติดต่อฐานข้อมูล

33

ScriptTimeout (Property)

ใช้ก!าห้นด้ระยัะเวลัาในการประมีวลัผลัของ Script รู�ปแบบ Server.ScriptTimeout = nSeconds

nSeconds เป�นระยัะเวลัาทำ��มีากทำ��สำ+ด้ในการร�น Script โด้ยัปกติ�จะ ติ��งไวทำ�� 90 ห้น%วยัเป�น ว�นาทำ�

เราสำามีารถก!าห้นด้ระยัะเวลัาทำ��มีากทำ��สำ+ด้ในการร�น Script ได้โด้ยัใช้ คำ!าสำ��งด้�งน��

<%Server.ScriptTimeout = 200%>

ถาคำ+ณติองการทำราบเวลัาทำ��ใช้ในการร�น Script ได้โด้ยัใช้คำ!าสำ��งด้�งน�� <%Timeout =Server.ScriptTimeout %>

Page 4: ASP  ติดต่อฐานข้อมูล

44

HTMLEncode (Method)

ใช้แปลัง String ให้อยั0%ในร0ปแบบ HTML รู�ปแบบ Server.HTMLEncode(String)

เช่�น <%=Server.HTMLEncode("<สำว�สำด้�คำร�บ>")%>

ผลัทำ��ได้คำ1อ&amp;&lt;&#3626;&#3623;&#3633;&#3626;&#3604;&#3637;&#3588;&#3619;&#3633;&#3610;&gt; แติ%ติองด้0

ผลัจาก Source ของ HTML

Page 5: ASP  ติดต่อฐานข้อมูล

55

MapPath (Method)

ใช้ห้าติ!าแห้น%งทำ��แทำจร�งในการเก2บไฟัลั�รู�ปแบบ

Server.MapPath(Path ทำ��อยั0%ของไฟัลั�)

URLEncode   แปลัง String ให้อยั0%ในร0ปแบบทำ��ใช้ก�บ URL ได้

รู�ปแบบ Server.URLEncode(String)

Page 6: ASP  ติดต่อฐานข้อมูล

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ติ เป�นผลัลั�พิธ์�กลั�บมีา

Page 7: ASP  ติดต่อฐานข้อมูล

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]"

Page 8: ASP  ติดต่อฐานข้อมูล

88

เมู%�อConn : เป�นการสำรางออบเจ2กติ�ให้มี%ช้1�อว%า ConnDsn-name : คำ1อช้1�อ Dsn userName : ช้1�อผ0มี�สำ�ทำธ์�ใช้ฐานขอมี0ลั ถาไมี%มี�ใสำ% "" (ว%าง) password : รห้�สำผ%านการใช้ฐานขอมี0ลัของผ0ใช้userName ถาไมี%มี�ใสำ "" (ว%าง)

Page 9: ASP  ติดต่อฐานข้อมูล

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

Page 10: ASP  ติดต่อฐานข้อมูล

1010

2. การูติ�ดติ�อผ่�าน DsnLess

ว�ธ์�น��จะแติกติ%างจากว�ธ์�ผ%าน ODBC คำ1อไมี%ติอง ก!าห้นด้ DSN ทำ�� ODBC แติ%เรา ก!าห้นด้ลังในติ�ว asp

script เลัยั

สำ!าห้ร�บการแกไขการ Set แบบ DsnLess ว�ธ์�น��คำ1อ การเข�ยันไฟัลั�สำ!าห้ร�บการ Include

Page 11: ASP  ติดต่อฐานข้อมูล

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 ไมี%ติองระบ+

Page 12: ASP  ติดต่อฐานข้อมูล

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ลัในกรณ�ทำ��มี� ถาไมี%มี�ให้ปลั%อยัว%างเอาใว

Page 13: ASP  ติดต่อฐานข้อมูล

1313

เพิ่��มูเติ�มูอ�กน�ดห็น-�ง Method ที่��น�าสนใจ ส!าห็รู�บConnection .Open : เป�นการเป7ด้การเช้1�อติ%อก�บ DSN ช้1�อ

mydsn ทำ��ก!าห้นด้ไวทำ�� ODBC.Close : เป�นการเลั�กการติ�ด้ติ%อก�บ DSN.Execute(strSQL) : เป�นการติ�ด้ติ%อเพิ1�อประมีวลั

ผลัขอมี0ลั จากฐานขอมี0ลั โด้ยัใช้สำติร�งทำ��เก2บคำ!าสำ��งSQL ทำ��ติองการกระทำ!าก�บฐานขอมี0ลัเพิ1�อให้ได้ขอมี0ลัทำ��ติองการ

Page 14: ASP  ติดต่อฐานข้อมูล

1414

3. การูติ�ดติ�อผ่�าน OLEDB การติ�ด้ติ%อฐานขอมี0ลัในแบบสำ+ด้ทำายัทำ��จะกลั%าวถ3งคำ1อแบบ

OLEDB ห้ร1อ (Object Link Embedding Database) OLEDB จะมี�โพิรไวเด้อร� (provider) ทำ!าห้นาทำ��คำลัายัก�บ

ได้ร�เวอร�ในระบบการติ�ด้ติ%อฐานขอมี0ลั แบบ DNS แลัะDNSLess

แติ%โพิรไวเด้อร�จะมี�ลั�กษณะพิ�เศษกว%า คำ1อมี�การติ�ด้ติ%อก�บฐานขอมี0ลัทำ��เร2วกว%าแลัะรองร�บการใช้ฐานขอมี0ลัแบบสำ�มีพิ�นธ์� (Relational Database) เป�นติน

Page 15: ASP  ติดต่อฐานข้อมูล

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"

Page 16: ASP  ติดต่อฐานข้อมูล

1616

ห็รู%อถาคุ/ณติองการูเรู�ยกไฟล2ที่��อย��ใน path ข้องServer

Set Conn = Server.CreateObject("ADODB.Connection")Conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/database.mdb")

Page 17: ASP  ติดต่อฐานข้อมูล

1717

Recordset Object

เป�นการด้3งขอมี0ลัจากฐานขอมี0ลัมีาแสำด้งโด้ยัใช้Recordset เพิ1�อคำวบคำ+มีสำถานะการแสำด้งผลัติ%าง ๆ

ก�อนที่��จะศึ-กษาที่!าคุวามูเข้าใจเก��ยวก�บ การูเรู�ยกใช่ ข้อมู�ลในติารูาง โดยใช่ SQL Statement คำ1อ

การน!าคำ!าสำ��ง Sql มีาเพิ1�อทำ!าการเลั1อกติารางห้ร1อเลั1อกขอมี0ลัในติาราง

Page 18: ASP  ติดต่อฐานข้อมูล

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

Page 19: ASP  ติดต่อฐานข้อมูล

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

Page 20: ASP  ติดต่อฐานข้อมูล

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�ง

Page 21: ASP  ติดต่อฐานข้อมูล

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

Page 22: ASP  ติดต่อฐานข้อมูล

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อไมี% สำามีรถเปลั��ยันแปลังได้พิรอมีๆก�น

Page 23: ASP  ติดต่อฐานข้อมูล

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ลัทำ�

เด้�ยัวเลัยั

Page 24: ASP  ติดต่อฐานข้อมูล

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 : ใช้อางอ�งไปยั�งห้นาทำ��ติองการ

Page 25: ASP  ติดต่อฐานข้อมูล

2525

ช้1�อ ฐานขอมี0ลั \db\member.mdb ช้1�อติาราง member

ช่%�อ Field- ID- Name- Surname- Nickname

- User

- Password

- Type

Page 26: ASP  ติดต่อฐานข้อมูล

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

Page 27: 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>

Page 28: ASP  ติดต่อฐานข้อมูล

2828

Out put

Page 29: ASP  ติดต่อฐานข้อมูล

2929

รู�ปแบบการูติ�ดติ�อข้อมู�ลแบบ Dynamic Recordset Static Recordset

Page 30: ASP  ติดต่อฐานข้อมูล

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ลัทำ��ติองการ

Page 31: ASP  ติดต่อฐานข้อมูล

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)

Page 32: ASP  ติดต่อฐานข้อมูล

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 น��นออกมีา

Page 33: ASP  ติดต่อฐานข้อมูล

3333

ติ�วอย�าง ช่%�อติารูาง member

ช่%�อ Filed- ID- Name- Surname- Nickname

Page 34: ASP  ติดต่อฐานข้อมูล

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>

Page 35: ASP  ติดต่อฐานข้อมูล

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>

Page 36: ASP  ติดต่อฐานข้อมูล

3636

Out Put

Page 37: ASP  ติดต่อฐานข้อมูล

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

Page 38: 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")%>&nbsp; <%= Rs("SurName")%> ‘ อาจจะเร�ยักไฟัลั�อ1�นๆได้ ห้ลั�ง login สำ!าเร2จ ‘ Response.redirect ”mainmenu.asp”<%end ifRs.CloseConn.Close%>

Page 39: ASP  ติดต่อฐานข้อมูล

3939

แบบฝึ8กห็�ดID Name Surname Nickname

มี�ทำ��งห้มีด้ 39 รายัการไปห้นาทำ�� 1 2 3 4 5

•น!าขอมี0ลัจากฐานขอมี0ลัออกมีาแสำด้ง•แสำด้งแติ%ลัะเรคำอร�ด้ให้สำลั�บสำ�บรรทำ�ด้•โด้ยัให้สำามีารถลั��งคำ�ไปห้นาติ%างๆได้ด้วยั•โด้ยัแสำด้งขอมี0ลัห้นาลัะ 8 เรคำอร�ด้