ADO เร่งความเร็วด้วย GetString()
ใช้วิธี GetString() เพื่อเพิ่มความเร็วสคริปต์ ASP ของคุณ (แทนที่จะใช้ Response.Write หลายรายการ)
ตอบกลับหลายรายการเขียน
ตัวอย่างต่อไปนี้แสดงให้เห็นวิธีหนึ่งในการแสดงแบบสอบถามฐานข้อมูลในตาราง HTML:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
%>
<table border="1" width="100%">
<%do until rs.EOF%>
<tr>
<td><%Response.Write(rs.fields("Companyname"))%></td>
<td><%Response.Write(rs.fields("Contactname"))%></td>
</tr>
<%rs.MoveNext
loop%>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>
สำหรับเคียวรีขนาดใหญ่ อาจทำให้เวลาในการประมวลผลสคริปต์ช้าลง เนื่องจากเซิร์ฟเวอร์ต้องประมวลผลคำสั่ง Response.Write จำนวนมาก
วิธีแก้ไขคือสร้างสตริงทั้งหมดจาก <table> ถึง </table> แล้วส่งออกโดยใช้ Response.Write เพียงครั้งเดียว
วิธีการ GetString()
เมธอด GetString() อนุญาตให้คุณแสดงสตริงด้วย Response.Write เดียวเท่านั้น นอกจากนี้ยังกำจัด do...loop code และการทดสอบแบบมีเงื่อนไขที่ตรวจสอบว่าชุดระเบียนอยู่ที่ EOF หรือไม่
ไวยากรณ์
str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
ในการสร้างตาราง HTML ด้วยข้อมูลจากชุดระเบียน เราจำเป็นต้องใช้พารามิเตอร์สามตัวข้างต้นเท่านั้น (พารามิเตอร์ทั้งหมดเป็นทางเลือก):
- coldel - HTML เพื่อใช้เป็นตัวคั่นคอลัมน์
- rowdel - HTML ที่จะใช้เป็นตัวคั่นแถว
- nullexpr - HTML ที่จะใช้หากคอลัมน์เป็น NULL
หมายเหตุ:เมธอด GetString() เป็นคุณลักษณะ ADO 2.0 คุณสามารถดาวน์โหลด ADO 2.0 ได้ ที่https://www.microsoft.com/data/download.htm
ในตัวอย่างต่อไปนี้ เราจะใช้เมธอด GetString() เพื่อเก็บชุดระเบียนเป็นสตริง:
ตัวอย่าง
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
str=rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
%>
<table border="1" width="100%">
<tr>
<td><%Response.Write(str)%></td>
</tr>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>
ตัวแปร str ด้านบนมีสตริงของคอลัมน์และแถวทั้งหมดที่ส่งคืนโดยคำสั่ง SQL SELECT ระหว่างแต่ละคอลัมน์ HTML </td><td> จะปรากฏขึ้น และระหว่างแต่ละแถว HTML </td></tr><tr><td> จะปรากฏขึ้น สิ่งนี้จะสร้าง HTML ที่เราต้องการด้วย Response.Write เดียวเท่านั้น