经典ASP - 简单脚本定时

时间:2011-04-07 22:40:32

标签: sql-server sql-server-2008 asp-classic

我正在尝试使用Classic 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时,它会以毫秒为单位返回结果。任何人都可以帮我弄清楚为什么这个脚本需要这么长时间。

1 个答案:

答案 0 :(得分:4)

您错过了重要的rs.movenext

    While NOT rs.EOF

        Response.Write(rs("name"))
        rs.movenext

    Wend 

否则你的代码永远不会退出循环,因为它会继续打印相同的记录..

相关问题