GetString()으로 ADO 속도 향상


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 코드와 레코드 집합이 EOF에 있는지 확인하는 조건부 테스트를 제거합니다.

통사론

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

레코드세트의 데이터로 HTML 테이블을 생성하려면 위의 세 가지 매개변수만 사용하면 됩니다(모든 매개변수는 선택사항임).

  • Coldel - 열 구분 기호로 사용할 HTML
  • rowdel - 행 구분 기호로 사용할 HTML
  • nullexpr - 열이 NULL인 경우 사용할 HTML

참고: 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>","&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>

위의 str 변수는 SQL SELECT 문에서 반환된 모든 열과 행의 문자열을 포함합니다. 각 열 사이에는 HTML </td><td>가 표시되고 각 행 사이에는 HTML </td></tr><tr><td>이 표시됩니다. 이렇게 하면 단 하나의 Response.Write로 필요한 정확한 HTML이 생성됩니다.