2011-04-07 4 views
0

클래식 ASP를 사용하는 사이트에서 검색 기능을위한 매우 간단한 스크립트를 작성하려고합니다. 다음과 같이 :클래식 ASP - 간단한 스크립트 시간 초과

<% 

Dim keyword, page 
set Cnt=Server.CreateObject("ADODB.Connection") 
keyword = Request.QueryString("s") 
page = Cint(Request.QueryString("p")) 

Function openDB() 
     DSN="Driver={SQL Server};Server=xx.xxx.xxx.xxx;Database=db_xxx;UID=xxx;PWD=xxx" 
    Cnt.Open(DSN) 
End Function 

Function closeDB() 
    Cnt.Close() 
End Function 

If (page = 0) Then 
    page = 1 
End If 

If (Trim(keyword) <> "") Then 

     openDB() 

     strSQL = "WITH OrderedResults AS (SELECT *, ROW_NUMBER() OVER (order by memorialid) as RowNumber FROM memorials WHERE bg LIKE '%2%') SELECT * FROM OrderedResults WHERE RowNumber between 1 and 5" 

     set rs = cnt.execute(strSQL)     

     While NOT rs.EOF 

      Response.Write(rs("name")) 

     Wend  

     closeDB() 
End If 


%> 

문제는이 스크립트가 시간 제한을 유지한다는 것입니다. 현재 테이블에는 단 5 개의 레코드 만 있습니다. Managment Studio에서 SQL을 직접 실행하면 결과가 밀리 초 단위로 반환됩니다. 누구든지이 스크립트가 왜 그렇게 오래 걸리는지 알아낼 수 있습니까?

답변

4

당신은 ..이 같은 기록을 인쇄 유지로, 그렇지 않으면 코드가 루프를 종료하지

그것은 작동
+1

을 중요한 rs.movenext

While NOT rs.EOF Response.Write(rs("name")) rs.movenext Wend 

누락! 감사! 나는 클래식 ASP를 싫어. – gunwin