06. marts 2008 - 11:59Der er
5 kommentarer og 1 løsning
Current Recordset does not support bookmarks
Hej Jeg har noget kode med paging. Det vigtigte (tror jeg) ser sådan her ud :
Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("familiencaroe.mdb") Conn.Open DSN strSQL = "SELECT * FROM blog order by id desc" Set rs = Conn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then rs.PageSize = 10 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount
Det giver fejlen
ADODB.Recordset error '800a0cb3'
Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.
/blogview.asp, line 53
hvor linie 53 er
rs.AbsolutePage = intPage
Hvis jeg i stedet laver denne connection til min db så virker det. Men det vil jeg helst ikke, da jeg så ikke kan finde ud af at læse 2 gange fra basen i samme script.
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM blog order by id desc" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("familiencaroe.mdb") rs.Open strSQL, StrDSN, 1
Du skal bruge den sidste kode. Altså den med: Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open strSQL, StrDSN, 1
Sådan en kode skal du dog selv lukke igen, hvis du vil bruge rs navnet igen. Du skal derfor efter dit gennemløb lukke recordsettet:
rs.Open strSQL, StrDSN, 1 while not rs.eof ... rs.MoveNext wend rs.Close '<-- Skriv denne linje set rs = conn.execute("select ...") '<-- Denne linje virker nu.
Så bliver du lige nød til at hjælpe mig lidt. Jeg skal nemlig bruge den anden læs inden jeg er færdig med den første.. Hvis du forstår. her er hele koden (minus lidt ligegyldigt)
<body>
<% intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then intPage = 1 End If
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM blog order by id desc" strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("familiencaroe.mdb") rs.Open strSQL, StrDSN, 1
If Not (rs.BOF Or rs.EOF) Then rs.PageSize = 10 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount %> <table style="width: 100%"> <tr> <td align="middle"><a href="ny_blog.asp">Opret nyt indlæg</a></td> </tr> </table> <table style="width: 100%"> <tr> <td class="style3" align="left"><%Response.Write "Side " & intPage & " af " & intPageCount & ""%></td> <td class="style3" align="right"> <%
Response.Write "Gå til side " For intNum = 1 To intPageCount Response.Write "<a href=default.asp?sitepage=blog&page=" & intNum & ">" & intNum & "</a> " Next Response.Write " " If Clng(intPage) > 1 Then Response.Write "<a href=default.asp?sitepage=blog&page=" & intPage - 1 & "><</a>" Else Response.Write "<" End If Response.Write " " If Clng(intPage) < Clng(intPageCount) Then Response.Write "<a href=default.asp?sitepage=blog&page=" & intPage + 1 & ">></a> " Else Response.Write ">" End If
%> </td>
</tr> </table> <br> <%
Do While Not rs.EOF And intRecCount > 0 %> <table style="width: 100%" cellspacing="0"> <tr> <td align="left" class="style7"><a href="default.asp?sitepage=blogview_indlag&id=<%=rs("id")%>"><img src="grafik/plus.gif" class="style5"></a><strong> <% Response.write rs("overskrift") %></strong> </td> <td align="right" class="style7"> <% Response.write "<img src=""grafik/comments.gif"">"%> kommentar <% Response.write "(" %> <% HER SKAL JEG SÅ BRUGE ET EKSTRA KALD TIL BASEN DER TÆLLER ANTAL KOMMENTARER!
'sql = "SELECT count(blog_id) as antal FROM Kommentar where blog_id = " & rs("id") 'set rscount = dbc.Execute(sql)
'Opret et recordest og brug connection objektet Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM blog order by id desc" rs.Open strSQL, Conn, 1 ... ... 'Brug conn objektet til at hente data set rscount = conn.Execute("SELECT count(blog_id) as antal FROM Kommentar where blog_id = " & rs("id")) antal = rscount("antal") set rscount = nothing ... ... 'Luk conn objektet conn.close
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT * FROM blog order by id desc" rs.Open strSQL, Conn, 1
If Not (rs.BOF Or rs.EOF) Then rs.PageSize = 10 rs.AbsolutePage = intPage intRecCount = rs.PageSize intPageCount = rs.PageCount %> <table style="width: 100%"> <tr> <td align="middle"><a href="ny_blog.asp">Opret nyt indlæg</a></td> </tr> </table> <table style="width: 100%"> <tr> <td class="style3" align="left"><%Response.Write "Side " & intPage & " af " & intPageCount & ""%></td> <td class="style3" align="right"> <%
Response.Write "Gå til side " For intNum = 1 To intPageCount 'Response.Write "<a href=default.asp?page=" & intNum & ">" & intNum & "</a> " Response.Write "<a href=default.asp?sitepage=blog&page=" & intNum & ">" & intNum & "</a> " Next Response.Write " " If Clng(intPage) > 1 Then 'Response.Write "<a href=default.asp?page=" & intPage - 1 & "><<</a>" Response.Write "<a href=default.asp?sitepage=blog&page=" & intPage - 1 & "><</a>" Else Response.Write "<" End If Response.Write " " If Clng(intPage) < Clng(intPageCount) Then 'Response.Write "<a href=default.asp?page=" & intPage + 1 & ">>></a> " Response.Write "<a href=default.asp?sitepage=blog&page=" & intPage + 1 & ">></a> " Else Response.Write ">" End If
%> </td>
</tr> </table> <br> <%
Do While Not rs.EOF And intRecCount > 0 %> <table style="width: 100%" cellspacing="0"> <tr> <td align="left" class="style7"><a href="default.asp?sitepage=blogview_indlag&id=<%=rs("id")%>"><img src="grafik/plus.gif" class="style5"></a><strong> <% Response.write rs("overskrift") %></strong> </td> <td align="right" class="style7"> <% Response.write "<img src=""grafik/comments.gif"">"%> kommentar <% Response.write "(" %> <% 'sql = "SELECT count(blog_id) as antal FROM Kommentar where blog_id = " & rs("id") 'set rscount = dbc.Execute(sql)
'antal = rscount("antal") 'set rscount = nothing set rscount = conn.Execute("SELECT count(blog_id) as antal FROM Kommentar where blog_id = " & rs("id")) antal = rscount("antal") set rscount = nothing
%> <% Response.write antal %> <% Response.write ")" %></td> </tr>
Håber det er rigtigt forstået. Men det giver fejlen : Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/blogview.asp, line 117
Som er: set rscount = conn.Execute("SELECT count(blog_id) as antal FROM Kommentar where blog_id = " & rs("id"))
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.