Fel på ASP-koden???

ASP

21 svar · 347 visningar · startad av Fredriksson

Medlem sedan nov. 2000319 inlägg
Trådstart#1

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

Medlem sedan dec. 200012 464 inlägg
#2

En sak kan vara att du inte har definierat adUseClient (=3) och andra konstanter.

red: ? Vilken rad är 114.

Medlem sedan nov. 2000319 inlägg
#3

En sak kan vara att du inte har definierat adUseClient (=3) och andra konstanter.

Hurdå menar du???

Medlem sedan dec. 200012 464 inlägg
#4

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.

Medlem sedan nov. 2000319 inlägg
#5

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.

Medlem sedan dec. 200012 464 inlägg
#6

Det ligger en rs.movefirst innan du gör open. Det är onödigt att ha med det anropet överhuvudtaget.

Medlem sedan nov. 2000319 inlägg
#7

Det blir samma felmeddelande även utan rs.movefirst :(

Medlem sedan dec. 200012 464 inlägg
#8

rs.absolutepage = onPage

borde också ligga efter open.

Det underlättar om du visar på vilken rad som felet inträffar :h.

Medlem sedan nov. 2000319 inlägg
#9

Ä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

Medlem sedan dec. 200012 464 inlägg
#10

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.

Medlem sedan nov. 2000319 inlägg
#11

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)};"
Medlem sedan nov. 2000319 inlägg
#12

Jag skulle gärna vilja få det här att funka... :)

:q

Medlem sedan dec. 200012 464 inlägg
#13

Hur ser koden ut nu? Kan du ta med från början till rad 150 ungefär?

Medlem sedan nov. 2000319 inlägg
#14

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">&nbsp;<a href="dagbok.asp?id=93">Dagbok</a>&nbsp;
	<img src="images/rec.jpg" width=7 height=8 alt="" border="0">&nbsp;<a href="gastbok.asp?id=93">G&auml;stbok</a>&nbsp;
	<img src="images/rec.jpg" width=7 height=8 alt="" border="0">&nbsp;<a href="vanner.asp?id=93">V&auml;nner</a>&nbsp;
	<img src="images/rec.jpg" width=7 height=8 alt="" border="0">&nbsp;<a href="meddelande.asp?till=93">Skriv brev</a>&nbsp;
	<img src="images/rec.jpg" width=7 height=8 alt="" border="0">&nbsp;<a href="vanner.asp?laggtill=93&id=93">Bli v&auml;n med</a>&nbsp;
	<img src="images/rec.jpg" width=7 height=8 alt="" border="0">&nbsp;<a href="ignore.asp?id=93">Ignorera</a>&nbsp;<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> &#0124; 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>&nbsp;<%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>
Medlem sedan dec. 200012 464 inlägg
#15

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.

Medlem sedan nov. 2000319 inlägg
#16

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

Medlem sedan nov. 2000319 inlägg
#17

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. ???

Medlem sedan juni 200032 967 inlägg
#18
if not rs.eof then
' det fanns saker , gör vad du ska
else
response.write "tomt, för 17 gubbar!"
end if

mvh,

Medlem sedan dec. 200012 464 inlägg
#19

Det funkar som det ska nu.

Så bra!

Medlem sedan nov. 2000319 inlägg
#20

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. :(

386 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
116 ms — deklarationer (db)
125 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)