Vad har newpage för värde? Vad har du satt pagesize till?
Du försöker förmodligen hoppa till en sida som inte finns, t.ex.
du har 47 poster i ditt recordset, pagesize = 10 och newpage = 5.
Du får nog visa mer kod om du vill ha mer hjälp.
25 svar · 554 visningar · startad av crisse6
Hej!
Jag har ett forum som på förstasidan listar trådar med länk som read.asp?id=13 te x.... När man sedan startar en ny tråd och den listas fram på slidan så får jag detta felmess när jag ska läsa den:
ADODB.Recordset error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/forum2/read.asp, line 36
36:
rs.AbsolutePage = nextPage
men det är bara på de nya trådarna som detta sker, inte på det jag har fört in manuellt i databasen när jag bara testade... Det finns data i databasen från när man har fyllt i genom formulär, konstigt tycker jag.
Vad har newpage för värde? Vad har du satt pagesize till?
Du försöker förmodligen hoppa till en sida som inte finns, t.ex.
du har 47 poster i ditt recordset, pagesize = 10 och newpage = 5.
Du får nog visa mer kod om du vill ha mer hjälp.
har sett att det är inte problemet. det har med ett värde att göra. nu undrar jag, kan man i en och samma sql sats föra in det ny ID:et i ett annat fält också?
säg att det nya ID:et är 14, så vill jag ha in det i svarid också... går det?
ingen?
Gör din insert, och sedan:
sql ="select @@identity from tabellen"
set objRS = connect.execute(sql)
id = objRS(0)
sql = "Update tabellen SET svarid = " & objRS(0) & " WHERE ID = " & objRS(0)
Connect.Execute(sql),,128
RED: använder du mysql skriver du last_insert_id() istället för @@identity
kan någon sätta ihop denna kod:
<%
If request.form("rubrik")= "" OR request.form("inlagg") = "" then
response.write "Du måste fylla i båda fälten, gå tillbaka."
else
Datum = Now
SQL4 = "INSERT INTO add_forum ([datum], [inlagg], [anvandarnamn], [orginal], [rubrik], [svarid]) VALUES(#"& Datum &"#,'" & Request.Form("inlagg") & "','" & Session("anvandarnamn") &"', 'Ja', '" & Request.Form("rubrik") & "',[id])"
SQL5 = "UPDATE medlemmar SET antal_inlagg = antal_inlagg +1 WHERE anvandarnamn = '" & Session("anvandarnamn") & "'"
response.write id
Databas.Execute(SQL4)
Databas.Execute(SQL5)
response.redirect "/forum2/default.asp"
end if
%>
med denna som LAMP skrev:
sql ="select @@identity from tabellen"
set objRS = connect.execute(sql)
id = objRS(0)
sql = "Update tabellen SET svarid = " & objRS(0) & " WHERE ID = " & objRS(0)
Connect.Execute(sql),,128
vore jätte snällt! stort tack till den som vill hjälpa mig.
ingen som kan hjälpa mig? jag får inte ihop det....
[r] upptäckte att jag hade uppfattat problemet fel [/r]
det select @@identity gör är att plocka ut det id som den senaste sql-frågan lade in...
Nu tror jag att jag förstår ditt problem...
<%
If request.form("rubrik")= "" OR request.form("inlagg") = "" then
response.write "Du måste fylla i båda fälten, gå tillbaka."
else
Datum = Now
SQL4 = "INSERT INTO add_forum ([datum], [inlagg], [anvandarnamn], [orginal], [rubrik]) VALUES(#"& Datum &"#,'" & Request.Form("inlagg") & "','" & Session("anvandarnamn") &"', 'Ja', '" & Request.Form("rubrik") & "')"
Databas.execute(SQL4)
SQL41 = "SELECT @@Identity"
set rs = Databas.execute(SQL41)
SQL42 = "UPDATE add_forum SET [svarid] = " & rs(0) & " WHERE id = " & rs(0) & ""
Databas.execute(SQL42)
SQL5 = "UPDATE medlemmar SET antal_inlagg = antal_inlagg +1 WHERE anvandarnamn = '" & Session("anvandarnamn") & "'"
response.write id
Databas.Execute(SQL5)
response.redirect "/forum2/default.asp"
end if
%>
detta borde funka... förutsatt att id:t i tabellen add_forum heter just "id"... men det kan du ju ändra som du vill ha det...
ett jätte tack till dig Erik!!!!!!!!! Fungerar ju perfekt!
en sista fråga, varför går det inte att skriva så här:
sql = "Select * From add_forum WHERE svarid = '" & Request.Querystring("id") & "' AND not orginal = 'Ja'"
Vadå går inte?
ja, när jag använder den koden så får jag felmess som säger att det är tomt... (EOF)
Tja, då finns inga poster i tabellen som motsvarar de villkor du ställt.
jo, det är ju det det gör...... ska kolla hang on
asså det är konstigt, det är något skumt....
okey här kommer hela koden, först sidan som listar trådarna:
<%
sql = "Select * From add_forum WHERE orginal = 'Ja' ORDER BY datum DESC"
sql2 = "select * from medlemmar where moderator = 'Ja'"
set rs = Databas.execute(sql)
set rs2 = Databas.execute(sql2)
X = 0
response.write "<table width=370 cellspacing=3><tr><td width=200><b>Rubrik:</b></td><td width=50><b>Skribent:</b></td><td width=120><b>Datum:</b></td></tr></table>"
DO UNTIL X=25 OR rs.EOF
if bgcolor="#FFFFFF" then
bgcolor="#EFEFEF"
else
bgcolor="#FFFFFF"
end if
response.write "<table width=370 cellspacing=3 bgcolor="& bgcolor &" valign=top><tr><td width=200><a href=read.asp?id="& rs("id") &">"& rs("rubrik") &"</td><td width=50>"& rs("anvandarnamn") &"</td>" &_
"<td width=120>"& FormatDateTime(rs("datum"), 1) &"</td></tr></table>"
rs.movenext
loop
%>
och sedan read.asp som visar trådens orginal inlägg samt svaren:
<%
nextPage = TRIM( Request( "nextPage" ) )
IF nextPage = "" THEN nextPage = 1
Set rs = Server.CreateObject("ADODB.Recordset")
Set rs2 = Server.CreateObject("ADODB.Recordset")
Set rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Select * From add_forum WHERE svarid = '" & Request.Querystring("id") & "' AND not orginal = 'Ja'"
sql2 = "select * from add_forum where orginal = 'Ja' AND id = " & Request.Querystring("id") & ""
sql3 = "select * from medlemmar"
rs.cursorlocation = 3
rs2.cursorlocation = 3
rs3.cursorlocation = 3
rs.CacheSize = 5
rs.Open sql, Databas, 3, 1
set rs2 = Databas.execute(sql2)
set rs3 = Databas.execute(sql3)
rs.PageSize = 10
rs.AbsolutePage = nextPage
X = 0
response.write "<table width=480><tr><td><span class=urubrik><a href=/forum2/default.asp>Webforum</a> >> <a href=/forum2/asp/default.asp>Active Server Pages</a> >> "& rs2("rubrik") &"</span><br></td></tr>"
response.write "<tr><td><b>Inlägg:</b><br> "& rs2("inlagg") &"<br><hr size=1 color=#000000><br><b>Svar:</b><br></td></tr></table>"
If rs.eof then
response.write "Det finns inga svar i denna tråd ännu."
else
DO UNTIL rs.eof OR rowCount = rs.PageSize
rowCount = rowCount + 1
if bgcolor = "#FFFFFF" then
bgcolor = "#EFEFEF"
else
bgcolor = "#FFFFFF"
end if
response.write "<table width=480 cellspacing=3 bgcolor="& bgcolor &"><tr><td width=100 valign=top>"& rs("anvandarnamn") &"</td><td width=380 valign=top><a href="& rs3("hemsida") &"><img src=home.gif border=0></a> <a href=mailto:"& rs3("mail") &"><img src=email.gif border=0></a> <a href=/medlemmar/profil.asp><img src=profile.gif border=0></a> <a href=/medlemmar/pm.asp><img src=sendpm.gif border=0></a></td></tr></table>"
response.write "<table width=480 cellspacing=3 bgcolor="& bgcolor &"><tr><td width=100 valign=top>Inlägg: "& rs3("antal_inlagg") &"</td><td width=350 valign=top>"& rs("inlagg") &"</td>" &_
"<td width=50 valign=top>"& rs("datum") &"</td></tr></table>"
rs.movenext
loop
IF rs.PageCount > 1 THEN
FOR a = 1 to rs.PageCount
IF a <> cINT( nextPage ) THEN
Response.Write "<a href='read.asp?nextPage="& a &"&id=" & Request.Querystring("id") & "&rubrik=" & Request.Querystring("rubrik") &"'>"& a &"</a> "
ELSE
Response.Write " "& a
END IF
NEXT
END IF
end if
%>
<%
If request.form("inlagg") = "" then
%>
<form name="formular" method="POST" action="read.asp?id=<%=request.querystring("id")%>&rubrik=<%=request.querystring("rubrik")%>">
<b>Svara:</b><br>
<textarea rows="5" name="inlagg" cols="30"></textarea>
<input type="hidden" name="av" value="<%=Session("anvandarnamn")%>">
<input type="hidden" name="svarid" value="<%=Request.Querystring("id")%>">
<br>
<input type="submit" value="Skicka" name="B1">
</form>
<%
else
Datum = Now
SQL4 = "INSERT INTO add_forum ([datum], [inlagg], [anvandarnamn], [orginal], [svarid]) VALUES(#"& Datum &"#,'" & Request.Form("inlagg") & "','" & Session("anvandarnamn") &"', 'Nej','" & Request.Form("svarid") &"')"
SQL5 = "UPDATE medlemmar SET antal_inlagg = antal_inlagg +1 WHERE anvandarnamn = '" & Session("anvandarnamn") & "'"
Databas.Execute(SQL4)
Databas.Execute(SQL5)
end if
rs.CLOSE
rs2.close
Databas.CLOSE
Set rs = nothing
Set rs2 = nothing
Set Databas = nothing
%>
nej, svarid är av typen text! :(