GimboMedlem sedan dec. 20001 626 inlägg Hejsan!
Håller på och skriver ut poster från databasen då jag tänkte använda mej av paging...
Men har ett problem, paging scriptet skriver inte ut antalet sidor som den delat in posterna på, och min forward länk dyker upp men när jag klickar på den visas inte fortsätningen av posterna så här ser koden ut:
anslutning till databas och min sql kod här
.
.
Set RS = Conn.Execute(sql)
Const perSida = 4
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
RS.CursorLocation = 3
RS.CacheSize = perSida
if (RS.eof or RS.BOF) then
response.write " No match found"
end if
%>
<%
RS.MoveFirst
RS.PageSize = perSida
TotalPages = RS.PageCount
RS.AbsolutePage = page
Count = 0
Do While Not RS.EOF And Count < RS.PageSize
%>
<tr>
<td width="81" bgcolor="#CFD4E1"><%=RS("ID") %></td>
<td width="76" bgcolor="#CFD4E1"><%
if (RS.Fields("country") = "US") Then
%>
<a target="blank" href="<%=locateLink %>"><% Response.Write RS.Fields("country")%> <img border="0" src="/images/map.gif"> </a>
<%
else
Response.Write RS.Fields("country")
end if
%>
</td>
<td width="123" bgcolor="#CFD4E1"><%=RS("address1") %></td>
<%
Count = Count + 1
RS.movenext
'Loop
Loop
%>
</tr>
<%
If TotalPages <> 1 Then
If (Int(page)) <> 1 Then
%>
<a href="infor.asp?page=<%=(Int(page)-1)%>" onfocus="this.blur()"><b>« Bakåt</b></a>
<%Else%>
<%End If%>
<%
For Pages = 1 To TotalPages
%>
<%If (Int(Pages)) = (Int(page)) Then%><b><font color="#000000"><%=Pages%></font></b> <%Else%><a href="display.asp?page=<%=Pages%>" onfocus="this.blur()"><b><%=Pages%></b></a> <%End If%><%Next%>
<%End If%>
<%
If (Int(page)) <> (Int(TotalPages)) AND Count > 0 Then
%>
<a href="display.asp?page=<%=(Int(page)+1)%>" onfocus="this.blur()"><b>Forward »</b></a>
<%Else%>
<% END IF %>
LarsGMedlem sedan dec. 200012 464 inlägg Om du byter
If (Int(page)) <> (Int(TotalPages)) AND Count > 0 Then
till
If page < TotalPages Then
GimboMedlem sedan dec. 20001 626 inlägg nope samma problem, alltså forward länken dyker upp men den ska ju räkna ut hur många sidor alla poster kommer att delas in på och skriva ut antelet sidor, men det gör den inte...
LarsGMedlem sedan dec. 200012 464 inlägg Jag läste lite för fort.
Om du flyttar om koden i början lite då så att cursorlocation sätts innan du gör execute.
Const perSida = 4
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
RS.CursorLocation = 3
RS.CacheSize = perSida
Set RS = Conn.Execute(sql)
if (RS.eof or RS.BOF) then
response.write " No match found"
response.end
end if
GimboMedlem sedan dec. 20001 626 inlägg den vill fortfarande inte LarsG :(
glömde nämna felmeddelandet efter att jag gjorde som du sist sa.
Microsoft VBScript runtime error '800a01a8'
Object required: 'RS'
LarsGMedlem sedan dec. 200012 464 inlägg Ja visst ja
Du måste använda
set rs = server.createobject("adodb.recordset")
och
rs.open sql,conn
istället för conn.execute
GimboMedlem sedan dec. 20001 626 inlägg ohhhh... nu rfår jag detta felmeddelande:
ADODB.Recordset error '800a0e79'
Operation is not allowed when the object is open.
på denna rad:
RS.CursorLocation = 3
LarsGMedlem sedan dec. 200012 464 inlägg Den raden måste ligga innan rs.open
GimboMedlem sedan dec. 20001 626 inlägg nur ser det ut så här:
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Conn.Open "......"
Const perSida = 4
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
RS.CursorLocation = 3
RS.CacheSize = perSida
RS.Open sql,conn
sql=....
och jag får felmeddelandet:
Item cannot be found in the collection corresponding to the requested name or ordinal.
får fel på denna rad:
TotalPages = RS.PageCount
RS.AbsolutePage = page
LarsGMedlem sedan dec. 200012 464 inlägg Hmm
Stämmer detta?
RS.Open sql,conn
sql=....
Dom raderna borde väl ligga i omvänd ordning.
GimboMedlem sedan dec. 20001 626 inlägg mmm men det fungerar fortfarande inte...
varför kör du 3st Conn.Open "ProdInfo" ??
Sql-satsen måste ligga innan du öppnar den med
RecordSet..
hur ser koden ut nu då?
den säger att fältet inte går att hitta i databasen..
GimboMedlem sedan dec. 20001 626 inlägg så här ser det ut nu :
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Conn.Open ".........."
Const perSida = 4
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
RS.CursorLocation = 3
RS.CacheSize = perSida
sql="...."
RS.Open sql,conn
och jag får detta felmeddelande:
Microsoft VBScript runtime error '800a005b'
Object variable not set: 'RS'
LarsGMedlem sedan dec. 200012 464 inlägg Hur ser hela koden ut och på vilken rad får du felet?
GimboMedlem sedan dec. 20001 626 inlägg hela koden...
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Conn.Open "....","....","...."
' RS.Open sql,conn
Const perSida = 4
If Request.QueryString("page") = "" then
page = 1
Else
page = Request.QueryString("page")
End If
RS.CursorLocation = 3
RS.CacheSize = perSida
'RS.Open sql,conn
sql="...."
'Response.Write sql
RS.Open sql,conn
'Set RS = Conn.Execute(sql)
if (RS.eof or RS.BOF) then
response.write " No match found"
end if
%>
<%
RS.MoveFirst
RS.PageSize = perSida
TotalPages = RS.PageCount
RS.AbsolutePage = page
Count = 0
Do While Not RS.EOF And Count < RS.PageSize
%>
<tr>
<td width="81" bgcolor="#CFD4E1"><%=RS("Id")%> </td>
<td width="76" bgcolor="#CFD4E1"><%
if (RS.Fields("country") = "SWE") Then
%>
<a target="blank" href="swe.html"><% Response.Write RS.Fields("country")%> <img border="0" src="/images/map.gif"> </a>
<%
else
Response.Write RS.Fields("country")
end if
%>
</td>
<td width="123" bgcolor="#CFD4E1"><%=RS("address1") %></td>
<%
Count = Count + 1
RS.movenext
'Loop
Loop
RS.Close
RS = nothing
Conn.Close
Conn = nothing
%>
</tr>
<%
If TotalPages <> 1 Then
If (Int(page)) <> 1 Then
%>
<a href="display.asp?page=<%=(Int(page)-1)%>" onfocus="this.blur()"><b>« Bakåt</b></a>
<%Else%>
<%End If%>
<%
For Pages = 1 To TotalPages
%>
<%If (Int(Pages)) = (Int(page)) Then%>
<b><font color="#000000"><%=Pages%></font></b>
<%Else%>
<a href="display.asp?page=<%=Pages%>" onfocus="this.blur()"><b><%=Pages%></b></a>
<%End If%>
<%Next%>
<%End If%>
<%
'If page > TotalPages Then
If (Int(page)) <> (Int(TotalPages)) AND Count > 0 Then
%>
<a href="display.asp?page=<%=(Int(page)+1)%>" onfocus="this.blur()"><b>Forward »</b></a>
<%Else%>
<% END IF %>
nu får jag inget felmeddelande längre pagingen verkar fungera, dvs den skriver ut antalet sidor och framåt knappen dyker upp MEN, på sidan två, tre, fyra osv så skriver den inte ut ngt, den skriver bara ut på första sidan, vad kan felet bero på?
solbulleMedlem sedan mars 20015 287 inlägg Hur ser din sql ut? Får du med dig hela den i länkningen i din paging?
(Tänkte alltså om den var uppbyggd mha querystring)
GimboMedlem sedan dec. 20001 626 inlägg har en helt vanlig sql, fast där jag i where kör en if satts
GimboMedlem sedan dec. 20001 626 inlägg kan problemet ligga i att det är en ms sql databas vi använder, och att cursor inte stödjer det eller ngt sånt?