Классический ASP - Простой сценарий - PullRequest
0 голосов
/ 08 апреля 2011

Я пытаюсь написать очень простой скрипт для функции поиска на сайте с использованием 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 записей, и когда я запускаю SQL непосредственно в Managment Studio, он возвращает результаты в миллисекундах.Может кто-нибудь помочь мне понять, почему этот сценарий занимает так много времени.

1 Ответ

4 голосов
/ 08 апреля 2011

Вам не хватает важного rs.movenext

    While NOT rs.EOF

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

    Wend 

в противном случае ваш код никогда не выходит из цикла, поскольку он продолжает печатать одну и ту же запись ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...