En sak kan vara att du inte har definierat adUseClient (=3) och andra konstanter.
red: ? Vilken rad är 114.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 05 maj 2001]
21 svar · 303 visningar · startad av Fredriksson
Med följande kod...
(databaskoppling inkluderas här)
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Const perSida = 10
Dim onPage
If Request.QueryString("onPage") = "" then
onPage = 1
Else
onPage = Request.QueryString("onPage")
End If
Rs.CursorLocation = adUseClient
Rs.CacheSize = perSida
SQL = "SELECT * FROM gb WHERE till = " & request.querystring("id") & " ORDER by id DESC"
Rs.MoveFirst
Rs.PageSize = perSida
Dim TotalPages
TotalPages = Rs.PageCount
Rs.AbsolutePage = onPage
Dim count
rs.open SQL, conn
Count = 0
Do While Not Rs.EOF And Count < Rs.PageSize
%>
<table border="0" cellpadding="0" cellpacing="0">
<tr>
<td width="42" valign="top">
<a href="ks.asp?id=<%=rs("frånID")%>">
<img src="images/users/<%
If FSO.FileExists (Server.MapPath("images/users/" & rs("frånID") & ".jpg")) then
Response.Write rs("frånID") & ".jpg"
else
Response.Write "nofoto.gif"
end if
%>" width=39 height=50 alt="" border="1"></a>
</td>
<td valign="top"><font face="verdana" size="-2" color="000000">
<b><%=rs("från")%></b> (<%=rs("tid")%> ):<br>
<%=rs("inlägg")%><br><br>
<% if rs("till") = Session("id") then %>
<a href="gastbok.asp?tabort=<%=rs("id")%>&id=<%=request.querystring("id")%>">Ta bort inlägg!</a>
<% end if %>
</td>
</tr>
</table>
<br>
<%
Count = Count + 1
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing
If TotalPages <> "1" Then
Dim Pages
For Pages = 1 To TotalPages
%>
<a href="gastbok.asp?onPage=<%=Pages%>"><%=Pages%></a> <%Next%>
<% end if %>
...får jag följande felmeddelande...
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/aspfiles/gastbok.asp, line 114
Vad är det jag har missat???
:q
------------------
F R E D R I K S S O N
[Redigerat av Fredriksson den 05 maj 2001]
En sak kan vara att du inte har definierat adUseClient (=3) och andra konstanter.
red: ? Vilken rad är 114.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 05 maj 2001]
En sak kan vara att du inte har definierat adUseClient (=3) och andra konstanter.
Hurdå menar du???
------------------
F R E D R I K S S O N
Det finns en fil som heter adovbs.inc som innehåller definitioner för de konstanter som man använder när man programmerar mot ADO, däribland adUseClient. Antingen kan man inkludera den filen på sidan eller så kan man själv lägga till definitioner för de konstanter som man använder.
------------------
essentitia preter non sans multiplicandum
Har fixat adovbs.inc nu och får nu istället...
Operation is not allowed when the object is closed.
...även om jag inte har stängt recordsettet nånstans.
------------------
F R E D R I K S S O N
Det ligger en rs.movefirst innan du gör open. Det är onödigt att ha med det anropet överhuvudtaget.
------------------
essentitia preter non sans multiplicandum
rs.absolutepage = onPage
borde också ligga efter open.
Det underlättar om du visar på vilken rad som felet inträffar :h.
------------------
essentitia preter non sans multiplicandum
Även detta resulterade i samma felmeddelande! :)
Om jag nu har räknar rätt (vilket inte alls är säkert) så är rad 126 någon av...
Rs.CursorLocation = adUseClient
Rs.CacheSize = perSida
------------------
F R E D R I K S S O N
[Redigerat av Fredriksson den 05 maj 2001]
Hmm, det enda du borde behöva mellan
create och open är att sätta cursorlocation och cachesize.
Nu syns inte den koden men jag förutsätter att du har skapat recordsetet med
set rs = server.createobject("adodb.recordset")
Annars så vet jag inte.
------------------
essentitia preter non sans multiplicandum
Min databaskoppling ser ut så här:
Dim Conn, Rs, SQL
Set conn = server.createobject("ADODB.Connection")
Set rs = server.createobject("ADODB.Recordset")
conn.open "DBQ=" & Server.Mappath("db/databas.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
------------------
F R E D R I K S S O N
[Redigerat av Fredriksson den 05 maj 2001]
Hur ser koden ut nu? Kan du ta med från början till rad 150 ungefär?
------------------
essentitia preter non sans multiplicandum
Visst. Här kommer det... :)
<!--#include file="adovbs.inc"-->
<!--#include file="db.asp"-->
<%
if request.querystring("tabort") <> "" then
SQL = "DELETE FROM gb WHERE id = " & request.querystring("tabort")
conn.Execute(SQL)
end if
Function GetUser(ID)
Dim User
Set User = server.createobject("ADODB.Recordset")
SQL = "SELECT * FROM login WHERE Id=" & Id
User.Open SQL, conn
If not(User.Eof) then
GetUser = User("username")
Else
GetUser = "<I>Användaren kunde inte hittas</I>"
End If
End Function
owner = getuser(request.querystring("id"))
%>
<!--#include file="menu.inc"-->
<%
if clng(request.querystring("id")) = clng(session("id")) then
SQL = "UPDATE gb SET läst = 1 WHERE till = " & request.querystring("id")
conn.Execute(SQL)
end if
if request.querystring("skickat") = "yes" then
SQL = "INSERT INTO gb (till, från, frånID, tid, inlägg) VALUES (" & request.querystring("id") & ", '" & Session("username") & "', " & Session("id") & ", '" & Now & "', '" & request.form("inlagg") & "')"
conn.Execute(SQL)
end if
%>
<html>
<head>
<title>Slime Community</title>
<META NAME="description" CONTENT="">
<META NAME="keywords" CONTENT="slime, community, chat, gästbok, vänner, dagbok, login, java, asp, människor, mess, sms, messa, ">
</head>
<body bgcolor="#ffffff" text="#000000" link="#224522" vlink="#224522" alink="#224522" topmargin="0" leftmargin="5" marginwidth="0" marginheight="0">
<table width="750" cellspacing="0" cellpadding="0" border="0">
<tr>
<td colspan="2" width="750" height="148"><img src="images/top.jpg" width=750 height=148 alt="" border="0"></td>
</tr>
<tr>
<td width="556" valign="top">
<table width="521" cellspacing="0" cellpadding="4" border="0" align="center">
<tr>
<td width="521" valign="top">
<center><font size="-2" face="verdana">
<img src="images/rec.jpg" width=7 height=8 alt="" border="0"> <a href="dagbok.asp?id=93">Dagbok</a>
<img src="images/rec.jpg" width=7 height=8 alt="" border="0"> <a href="gastbok.asp?id=93">Gästbok</a>
<img src="images/rec.jpg" width=7 height=8 alt="" border="0"> <a href="vanner.asp?id=93">Vänner</a>
<img src="images/rec.jpg" width=7 height=8 alt="" border="0"> <a href="meddelande.asp?till=93">Skriv brev</a>
<img src="images/rec.jpg" width=7 height=8 alt="" border="0"> <a href="vanner.asp?laggtill=93&id=93">Bli vän med</a>
<img src="images/rec.jpg" width=7 height=8 alt="" border="0"> <a href="ignore.asp?id=93">Ignorera</a> <br><br></center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="60%" valign="top">
<font color="#000000" face="Verdana, Arial, Helvetica, sans-serif" size=1>
<b><%=owner%></b> | Gästbok<br><br>
<%
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Const perSida = 10
Dim onPage
If Request.QueryString("onPage") = "" then
onPage = 1
Else
onPage = Request.QueryString("onPage")
End If
Rs.CursorLocation = adUseClient
Rs.CacheSize = perSida
SQL = "SELECT * FROM gb WHERE till = " & request.querystring("id") & " ORDER by id DESC"
Rs.PageSize = perSida
Dim TotalPages
TotalPages = Rs.PageCount
Dim count
rs.open SQL, conn
Count = 0
Do While Not Rs.EOF And Count < Rs.PageSize
%>
<table border="0" cellpadding="0" cellpacing="0">
<tr>
<td width="42" valign="top">
<a href="kluttsida.asp?id=<%=rs("frånID")%>">
<img src="images/users/<%
If FSO.FileExists (Server.MapPath("images/users/" & rs("frånID") & ".jpg")) then
Response.Write rs("frånID") & ".jpg"
else
Response.Write "nofoto.gif"
end if
%>" width=39 height=50 alt="" border="1"></a>
</td>
<td valign="top"><font face="verdana" size="-2" color="000000">
<b><%=rs("från")%></b> (<%=rs("tid")%> ):<br>
<%=rs("inlägg")%><br><br>
<% if rs("till") = Session("id") then %>
<a href="gastbok.asp?tabort=<%=rs("id")%>&id=<%=request.querystring("id")%>">Ta bort inlägg!</a>
<% end if %>
</td>
</tr>
</table>
<br>
<%
Count = Count + 1
Rs.MoveNext
Loop
Rs.AbsolutePage = onPage
If TotalPages <> "1" Then
Dim Pages
For Pages = 1 To TotalPages
%>
<a href="gastbok.asp?onPage=<%=Pages%>"><%=Pages%></a> <%Next%>
<% end if %>
</font>
</td>
<td valign="top" width="40%">
<form method="post" action="gastbok.asp?id=<%=request.querystring("id")%>&skickat=yes">
<textarea name="inlagg" style="background: #eff7ea; font-family:Verdana; font-size:10px" cols="30" rows="5">Skriv ditt inlägg här...</textarea><br>
<input type="submit" value="Skicka inlägg!" style="font-family:Verdana; font-size:10px"></form>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td width="194" valign="top" align="center">
<% call menulinks %>
<br>
</td>
</tr>
</table>
</body>
</html>
------------------
F R E D R I K S S O N
Nu har du ju så här.
Dim TotalPages
TotalPages = Rs.PageCount
Dim count
rs.open SQL, conn
Vad händer om du flyttar om lite
Dim count
rs.open SQL, conn
Dim TotalPages
TotalPages = Rs.PageCount
Kan du ta med hela felkoden också, om inte det här hjälper.
------------------
essentitia preter non sans multiplicandum
Har ändrat om som du sa och får nu istället felmeddelandet:
ADODB.Recordset error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/aspfiles/gastbok.asp, line 164
------------------
F R E D R I K S S O N
Nej, vad dum jag är. Det är ju för att det inte finns något i databasen.
Det funkar som det ska nu. Hur gör man förresten för att ersätta detta felmeddelandet med texten Databasen innehållet ingen data. ???
------------------
F R E D R I K S S O N
if not rs.eof then
' det fanns saker , gör vad du ska
else
response.write "tomt, för 17 gubbar!"
end if
mvh,
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>
Tack för det @nders.
LarsG, nu blev det ett nytt problem :) Inläggen delas ju upp på olika sidor men när man klickar på ett av sidnummerna längst ner på sidan så visas fortfarande samma inlägg. :(
------------------
F R E D R I K S S O N