Avatar billede c-lund Nybegynder
29. juli 2008 - 13:57 Der er 3 kommentarer

Pageing og parameter

Hej

Jeg har følgende kode, som jeg gerne vil lave pageing på, men kan ikke få det til at virke. Nogen der kan hjælpe?

Set rs = server.createobject("ADODB.recordset")
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "dbo.Search"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@SearchFrase", 200, 1, 255, keywords)
Set rs = cmd.Execute

If rs.EOF then
    Response.Write("<span class=""Fejl"" style=""font-size:14px;"">Der er ingen resultater der passer til din søgning<br><b>(""" & Keywords & """)</b></span>")
else
    rs.PageSize = 15
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount

    Response.write("<table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"" class=""Text"">")

    Do while not rs.EOF
   
        Response.write("<tr onMouseOver=""this.style.background='#eeeeee'"" onMouseOut=""this.style.background='none'"" onclick=""location.href='" & rs("link") & "'"" style=""cursor:pointer"">")
            Response.write("<td>")
                Response.write("<b>" & rs("SearchTitle") & "</b><br>")
                Response.write(rs("SearchDescription") & "<br>")
            Response.write("</td>")
        Response.write("</tr>")
        Response.write("<tr><td><hr noshade color=""#d5d5d7"" align=""left"" size=""1""></td></tr>")

            intRecCount = intRecCount - 1
        rs.MoveNext
    loop
End if
Avatar billede c-lund Nybegynder
29. juli 2008 - 14:00 #1
Jeg for denne fejl:
Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.
Avatar billede fennec Nybegynder
29. juli 2008 - 14:20 #2
Jeg indrømmer at jeg ikke har arbejded meget med ADODB.Command objektet, men problemet skyldes at recordsettet ikke bliver åbnet med den rigtige cursor.

Den kode der skal til er:
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open strSQL, strDSN, 1

Det er "1" der er det vigtige element her (default er 0):
http://msdn.microsoft.com/en-us/library/ms681771(VS.85).aspx

Ved at bruge execute komandoen fra ADODB.Command eller ADODB.Connection objekterne får du ikke muligheden for at sætte cursoren på recordsettet.

Måske er det muligt at sætte cursoren på Command objektet, men jeg ved det ærlig talt ikke. Ellers er din eneste mulighed at gå væk fra command objektet og fyre en SQL-sætning af i stedet.

Håber jeg har hjulpet dig lidt på vej...
Avatar billede softspot Forsker
30. juli 2008 - 00:56 #3
Mit umiddelbare bud er, at du skal oprette et recordsetobjekt med Server.CreateObject og sende command-objektet med til recordsettet (i nogenlunde det format som fennec foreslår). Altså skal denne linie:

Set rs = cmd.Execute

udskiftes med noget i denne stil:

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open cmd, , adOpenKeyset, adLockReadOnly
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester