ADO Tăng tốc với GetString ()


Sử dụng phương thức GetString () để tăng tốc tập lệnh ASP của bạn (thay vì sử dụng nhiều Response.Write).


Multiple Response.Write's

Ví dụ sau minh họa một cách hiển thị truy vấn cơ sở dữ liệu trong bảng 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>

Đối với một truy vấn lớn, điều này có thể làm chậm thời gian xử lý tập lệnh, vì nhiều lệnh Response.Write phải được máy chủ xử lý.

Giải pháp là tạo toàn bộ chuỗi, từ <table> đến </table>, sau đó xuất ra - sử dụng Response.Write chỉ một lần.



Phương thức GetString ()

Phương thức GetString () cho phép bạn hiển thị chuỗi chỉ có một Response.Write. Nó cũng loại bỏ mã vòng lặp do ... và kiểm tra điều kiện để kiểm tra xem tập bản ghi có ở EOF hay không.

Cú pháp

str = rs.GetString(format,rows,coldel,rowdel,nullexpr)

Để tạo bảng HTML với dữ liệu từ tập bản ghi, chúng ta chỉ cần sử dụng ba trong số các tham số ở trên (tất cả các tham số là tùy chọn):

  • coldel - HTML để sử dụng làm dấu phân tách cột
  • rowdel - HTML để sử dụng làm dấu phân tách hàng
  • nullexpr - HTML để sử dụng nếu một cột là NULL

Lưu ý: Phương thức GetString () là một tính năng ADO 2.0. Bạn có thể tải xuống ADO 2.0 tại https://www.microsoft.com/data/download.htm .

Trong ví dụ sau, chúng tôi sẽ sử dụng phương thức GetString () để giữ tập bản ghi dưới dạng một chuỗi:

Thí dụ

<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>","&nbsp;")
%>

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

Biến str ở trên chứa một chuỗi gồm tất cả các cột và hàng được trả về bởi câu lệnh SQL SELECT. Giữa mỗi cột, HTML </td> <td> sẽ xuất hiện và giữa mỗi hàng, HTML </td> </tr> <tr> <td> sẽ xuất hiện. Điều này sẽ tạo ra HTML chính xác mà chúng ta cần chỉ với một Response.Write.