Upload
lilah
View
31
Download
0
Embed Size (px)
DESCRIPTION
Recordset Object. Seree Chinodom [email protected]. Recordset. Recordset หมายถึงกลุ่มของเรคอรฺดซึ่งอาจเป็นบางเรคอร์ดหรือทั้งหมดที่อยู่ในฐานข้อมูล Recordset ใช้รองรับการทำงานทั่วไปที่เกิดจากฐานข้อมูล การอ่านเรคอร์ด การเปลี่ยนแปลง การลบ การค้นหา การเรียงลำดับ. การเตรียมการใช้งาน Recordset. - PowerPoint PPT Presentation
Citation preview
Computer Science, BUU2
Computer Science, BUU3
Recordset• Recordset หมายถึ�งกลุ่��มของเรคอร�ดซึ่��งอาจ
เป็�นบางเรคอร�ดหร�อทั้��งหมดทั้ �อย!�ในฐานข$อม!ลุ่•Recordset ใช้$รองร�บการทั้&างานทั้��วไป็ทั้ �เก)ด
จากฐานข$อม!ลุ่- การอ�านเรคอร�ด- การเป็ลุ่ �ยนแป็ลุ่ง- การลุ่บ- การค$นหา- การเร ยงลุ่&าด�บ
Computer Science, BUU4
การเตร ยมการใช้$งานRecordset
• 1. สร$าง ODBC Data Source Name
•2. ก&าหนด User Identification แลุ่ะPassword- ระบ� UserID- รห�สผ่�าน
•3. ทั้&าความเข$าใจก�บโครงสร$างของระบบฐานข$อม!ลุ่
Computer Science, BUU5
ช้�ดค&าส��งเบ��องต$นส&าหร�บการทั้&างานก�บRecordset
1. Dim oRS 2. =Set oRS.(“.”) 3. . “oRS open ”ช้��อตาราง , “=ช้��อ dat a sour ce;
UID=ช้��อผ่!$ใช้$; PWD=รห�สผ่�าน” บรรทั้�ด 1 ป็ระกาศต�วแป็รเพื่��อรองร�บ Recordset
บรรทั้�ดทั้ � 2 เป็�นการสร$าง recordset object โดยให$ต�วแป็ร oRS เป็�นต�วอ$างอ)งถึ�ง
บรรทั้�ดทั้ � 3 เป็�นการใช้$เมธอด open ก&าหนดการต)ดต�อฐานข$อม!ลุ่
Computer Science, BUU6
การเข ยนข$อม!ลุ่Recordsetลุ่งในHTML
• ใช้$ค&าส��ง Response.Write เข ยนใน แทั้3ก <% %>ด�งน �
<%Response.write ช้��อobject(“ช้��อฟิ5ลุ่ด�ในตาราง”) %>
• หร�อ<%= ช้��อobject(“ช้��อฟิ5ลุ่ด�ในตาราง”)%>
• หร�อ Response.Write ช้��อobject(“ช้��อ
ฟิ5ลุ่ด�ในตาราง”).value
Computer Science, BUU7
การน&าข$อม!ลุ่จากRecordsetเก3บลุ่งต�วแป็ร
• น&าข$อม!ลุ่เก3บลุ่งต�วแป็รเพื่��อเตร ยมค�าส&าหร�บน&าไป็ด&าเน)นการ
ช้��อต�วแป็ร = ช้��อ object(“ช้��อฟิ5ลุ่ด�ในตาราง”)
เช้�นsContractID = oRS
(“ContractID”) หร�อsContractID = oRS (“FirstName”)
&” “& oRS (“LastName”)
Computer Science, BUU8
การน&าข$อม!ลุ่จากRecordsetเพื่��อเป็ร ยบ
เทั้ ยบ• ใช้$เป็�นเง��อนไขในข$อความส��ง if/then/else
หร�อ Do … Loopif oRS (“ContractName”) =“DBA”
Then ‘ค&าส��งทั้ �ให$ด&าเน)นการเม��อเง��อนไขจร)งEnd If
หร�อDo While oRS.EOF ‘ค&าส��งทั้ �ให$ด&าเน)นการในลุ่!ป็Loop
Computer Science, BUU9
การน&าข$อม!ลุ่จากRecordsetใช้$เป็�นอาร�ก)วเมนต�ของฟิ6งก�ช้�น
• น&าข$อม!ลุ่มาเป็�นค�า อาร�ก)วเมนต�ของฟิ6งก�ช้�น vFirstName =
Left(oRS(“FirstName”), 5) vPassword =
Ucase(oRS(“FirstName”))
Computer Science, BUU10
ต�วอย�าง <%@Language = VBScript%>
<HMTL><HEAD><TITLE>เพื่จทั้ดสอบการใช้$งานของข$อม!ลุ่ในเรคอร�ดเซึ่ต</
TITLE></HEAD><BODY><H3>เพื่จทั้ดสอบการใช้$งานของข$อม!ลุ่ในเรคอร�ดเซึ่ต</H3><%
dim oRSp set oRSp =
Server.CreateObject("ADODB.recordset") oRSp.Open "Products", "DSN=Northwind"
oRSp.MoveFirst
Response.Write "บรรทั้�ดถึ�ดไป็เป็�นการเข ยนข$อม!ลุ่จากเรคอร�ดเซึ่ตลุ่งในเพื่จ:<BR>" Response.Write oRSp("ProductName") &
"<BR><BR>"
Computer Science, BUU11
Response.Write "บรรทั้�ดถึ�ดไป็เป็�นการเข ยนข$อม!ลุ่จากต�วแป็รทั้ �เก3บข$อม!ลุ่:<BR>" Dim varPrdName
varPrdName = oRSp("ProductName") Response.Write varPrdName & "<BR><BR>"
Response.Write " บรรทั้�ดถึ�ดไป็เป็�นการใช้$ If…Then ในการทั้&างานก�บข$อม!ลุ่:<BR>" If oRSp("UnitsInStock") < 50 Then
Response.Write " ป็ร)มาณส)นค$าเหลุ่�อน$อยกว�า 50หน�วย<BR><BR>"Else Response.Write " ป็ร)มาณส)นค$าเหลุ่�อมากกว�า 50หน�วย<BR><BR>"
End If
Response.Write "บรรทั้�ดถึ�ดไป็เป็�นการใช้$ใช้$ข$อม!ลุ่เป็�นอาร�ก)วเมนต�ในฟิ6งก�ช้��น:<BR>" Response.Write Ucase(oRSp("ProductName")) & "<BR><BR>"
oRSp.Close Set oRSp=Nothing
%> </BODY> </HTML>
Computer Science, BUU12
การระบ�ต&าแหน�งการใช้$งานเรคอร�ดในRecordset
• Move ใช้$ในการเลุ่��อนเคอร�เซึ่อร�ของเรคอร�ดพื่อยน�เตอร�ไป็ย�งเรคอร�ดก�อนหน$าหร�อย$อนกลุ่�บตามต�วเลุ่ขทั้ �ระบ�ไว$
หลุ่�ง Move• MoveFirst ใช้$ในการเลุ่��อนเรคอร�ดพื่อยน�เตอร�ไป็ย�งเร
คอร�ดแรกใน recordset ถึ$าใช้$ในการด�งข$อม!ลุ่จะได$เรคอร�ดแรก
• MoveLast ใช้$ในการเลุ่��อนเรคอร�ดพื่อยน�เตอร�ไป็ย�งเร คอร�ดทั้$ายส�ดใน recordset ถึ$าใช้$ในการด�งข$อม!ลุ่จะได$
เรคอร�ดส�ดทั้$าย• MovePrevious ใช้$ในการเลุ่��อนเรคอร�ดพื่อยน�เตอร�ไป็
ย�งเรคอร�ดก�อนหน$าเรคอร�ป็6จจ�บ�น แต�ถึ$าเรอร�ดป็6จจ�บ�นเป็�นเรคอร�แรกจะเก)ดข$อผ่)ดพื่ลุ่าด
• MoveNext ใช้$ในการเลุ่��อนเรคอร�ดพื่อยน�เตอร�ไป็ย�งเร คอร�ดถึ�ดจากเรคอร�ป็6จจ�บ�น แต�ถึ$าเรอร�ดป็6จจ�บ�นเป็�นเร
คอร�ส�ดทั้$ายจะเก)ดข$อผ่)ดพื่ลุ่าด
Computer Science, BUU13
ต�วอย�าง mvpointer.asp<HMTL><HEAD><TITLE> เพื่จทั้ดสอบการทั้&างานก�บเรคอร�ดต�างๆ ในเรคอร�ด
เซึ่ต</TITLE></HEAD><BODY><H3> เพื่จทั้ดสอบการทั้&างานก�บเรคอร�ดต�างๆ ในเรคอร�ด
เซึ่ต</H3><%
Dim oRSe Set oRSe =
Server.CreateObject("ADODB.recordset") oRSe.Open "Employees", "DSN=Northwind"
oRSe.MoveFirst Response.Write " บรรทั้�ดถึ�ดไป็เป็�นนามสก�ลุ่ของลุ่!กจ$าง
3 เรคอร�ดแรกจากตาราง Employees :<BR>"
Computer Science, BUU14
ต�วอย�าง mvpointer.asp Response.Write oRSe("LastName") & ",
"oRSe.MoveNext
Response.Write oRSe("LastName") & ","
oRSe.MoveNext Response.Write oRSe("LastName")
oRSe.MoveNextoRSe.Close
Set oRSe=Nothing%></BODY></HTML>
Computer Science, BUU15
ต�วอย�าง การแสดงผ่ลุ่เป็�นตารางข$อม!ลุ่
<HMTL><HEAD><TITLE> การแสดงผ่ลุ่ข$อม!ลุ่ของ 5 เรคอร�ดแรกโดยใช้$
ตาราง</TITLE></HEAD><BODY><H3> การแสดงผ่ลุ่ข$อม!ลุ่ของ 5 เรคอร�ดแรกโดยใช้$
ตาราง</H3><%
Dim oRSe, iCnt Set oRSe =
Server.CreateObject("ADODB.recordset") oRSe.Open "Employees", "DSN=Northwind"
oRSe.MoveFirst
Computer Science, BUU16
ต�วอย�าง การแสดงผ่ลุ่เป็�นตารางข$อม!ลุ่(ต�อ)
Response.Write "<TABLE BORDER ='1'>"
For iCnt = 1 To 5 Response.Write "<TR><TD>" &
oRSe("FirstName") & "</TD>" Response.Write "<TD>" &
oRSe("LastName") & "</TD></TR>" oRSe.MoveNextNext%></TABLE></BODY></HTML>
Computer Science, BUU17
การแสดงผ่ลุ่ข$อม!ลุ่ทั้�กเรคอร�ดจากrecordset
• การแสดงผ่ลุ่ข$อม!ลุ่ทั้�กระเบ ยนจาก recordset จะ ใช้$ฟิ6งก�ช้�น EOF (End Of File) ซึ่��งใช้$ส&าหร�บการ
ตรวจสอบการส)�นส�ดของเรคอร�ดใน recordset โดยค�าของฟิ6งก�ช้�นน �จะเป็�น “true” เม��อม การ
เลุ่��อนเรคอร�ดพื่อยน�เตอร�เลุ่ยจากเรคอร�ส�ดทั้$ายไป็• ใช้$ฟิ6งก�ช้�น EOF ร�วมก�บ Do while …loop
ด�งน �Do while NOT oRS.EOF ‘ค&าส��งป็ระมวลุ่ผ่ลุ่ … oRS.MoveNextLoop
Computer Science, BUU18
ต�วอย�าง การแสดงผ่ลุ่ข$อม!ลุ่ทั้�กเรคอร�ด
<HMTL><HEAD><TITLE> การแสดงผ่ลุ่ข$อทั้�กเรคอร�โดยใช้$ EOF
</TITLE></HEAD><BODY><H3> การแสดงผ่ลุ่ข$อม!ลุ่ทั้�กเรคอร�ดโดยใช้$ EOF </H3><%
Dim oRSe Set oRSe =
Server.CreateObject("ADODB.recordset") oRSe.Open "Employees", "DSN=Northwind"
oRSe.MoveFirst Response.Write "<TABLE BORDER = '1'>"
Computer Science, BUU19
ต�วอย�าง การแสดงผ่ลุ่ข$อม!ลุ่ทั้�กเรคอร�ด(ต�อ)
Dim iCnt iCnt = 0
Do while NOT oRSe.EOF iCnt = iCnt + 1 Response.Write "<TR><TD>" & iCnt &
"</TD>" Response.Write "<TD>" &
oRSe("FirstName") & "</TD>" Response.Write "<TD>" &
oRSe("LastName") & "</TD></TR>" oRSe.MoveNextLoop
Response.Write "</TABLE><BR>"%></BODY></HTML>
Computer Science, BUU20
การแสดรายลุ่ะเอ ยดของฟิ5ลุ่ในrecordset
• สามารถึแสดงรายลุ่ะเอ ยดแลุ่ะค�ณสมบ�ต)ของ ฟิ5ลุ่ด�ต�างๆใน recordset ได$ โดยใช้$ร!ป็แบบ
ค&าส��งด�งน �oRS.Fields(“FieldName”)
หร�อ ถึ$าไม�ทั้ราบช้��อฟิ5ลุ่ด�oRS.Fields(#)
โดยทั้ � # หมายถึ�งเลุ่ขลุ่&าด�บในการอ$างถึ�งฟิ5ลุ่ด�ซึ่��ง เร)�มต$นทั้ � 0 ,1,2,...
• ถึ$าต$องการน�บช้��อฟิ5ลุ่ด�ทั้��งหมดในrecordset ใช้$ค&าส��งด�งน �
oRS.Fields.Count
Computer Science, BUU21
ต�วอย�าง<HTML><HEAD><TITLE> การอ�านรายลุ่ะเอ ยดของฟิ5ลุ่ด�ต�างๆ ในตาราง</TITLE></HEAD><BODY><H3> การอ�านรายลุ่ะเอ ยดของฟิ5ลุ่ด�ต�างๆ ในตาราง
Employees</H3><% SSS
oRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS oRS.Open "Employees", "DSN=Northwind" 1Response.Write "<TABLE BORDER= >" SSS SSSS SSSSSS SS SSSSSSSSSS SSSSSSSSSSSSSS SSSSSSSSSS S SSSSSSSSSSS S "</ TD>"
Response.Write "<TD>" & ofield.type &"</TD></TR>"
SSSS Response.Write "</TABLE>"%>
Computer Science, BUU22
ต�วอย�าง การน&าข$อม!ลุ่จากrecordset แสดงใน List box
<HTML><HEAD><TITLE> การใช้$ข$อม!ลุ่จากเรคอร�ดเซึ่ตก�บ List
Box</TITLE></HEAD><BODY><H3> การใช้$ข$อม!ลุ่จากเรคอร�ดเซึ่ตก�บ List Box</H3>
<P>List of categories from categoriestable</P><BR>
<% Dim oRSc Set
oRSc=Server.CreateObject("ADODB.Recordset")
oRSc.Open "Categories", "DSN=Northwind" oRSc.MoveFirst%>
Computer Science, BUU23
<FORM METHOD="get"ACTION="ResLst.asp">
<SELECT NAME="Categories" SIZE="1"><% Do While NOT oRSc.EOF Response.Write "<OPTION SELECTED
VALUE='" & oRSc("CategoryName") & "'>" Response.Write oRSc("CategoryName") &
"</OPTION>" oRSc.MoveNext Loop oRSc.Close Set oRSc=Nothing%></SELECT>
<INPUT TYPE="submit"></FORM></BODY></HTML>