webForumDet fria alternativet

Problem med Gästbok

ASPur ASP

15 svar · 394 visningar · startad av Jeppez

JeppezMedlem sedan jan. 200263 inlägg
#1

Det e så att jag försöker fixa så att varje medlem i min community ska få en egen gästbok, Men jag får upp en massa problem hela tiden. Detta felmedelande får jag upp när jag ska in på GB:N genom att ha inloggat mig på communityn;

Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/wwwroot/gastbok.asp, line 11

Så här ser koden ut på själva sidan(gastbok.asp);

<br>
<br>
<%
nextPage = TRIM( Request("nextPage"))
IF nextPage = "" THEN nextPage = 1

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gb.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gb where gbtillid='"&request.querystring("tillid")&"' order by id desc"
rs.Open Addera, Connect, 3, 3

Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&request.querystring("tillid")&"'"
rs1.Open Addera, Connect, 3, 3

if request.querystring("action")="spara" then
if session("tillid") <> request.querystring("tillid") then
rs.addnew
rs("namn")=session("namn")
rs("inlagg")=request.form("text")
rs("gbid")= request.querystring("tillid")
rs.update

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("gb.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("tillid")&"'"
rs.Open Addera, Connect, 3, 3
rs("status") = rs("status") + 100
rs.update

response.redirect "gastbok.asp?tillid="&request.querystring("tillid")
end if
end if
rs.PageSize = 10
if not rs.EOF then
rs.AbsolutePage = nextPage
%>
<br>
<% END IF
%>
<br>
<form name="form1" method="post" action="gastbok.asp?action=spara&tillid=<%=request.querystring("tillid")%>">
<textarea name="inlagg" rows="4" cols="20"></textarea>
<input type="submit" name="Submit" value="skicka">
</form>
<br>

<%
Do until rs.EOF OR rowCount = rs.PageSize
rowCount = rowCount + 1
%>
<B><%=rs("namn")%></b><br><%=rs("text")%><hr>
<%
rs.movenext
loop
%><br>

/TACKSAM FÖR SVAR!

VideMedlem sedan dec. 19998 577 inlägg
#2

Ser jag dåligt eller skapar du ett recordset som heter "rs1" som du sedan inte använder?

JeppezMedlem sedan jan. 200263 inlägg
#3

Asså, vad är det som ska bort då?

JeppezMedlem sedan jan. 200263 inlägg
#4

Nu har jag gjort om lite, men får fortfarande felmedelande:

Feltyp:
ADODB.Field (0x80020009)
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
/wwwroot/gastbok.asp

Nya koden för sidan; ( gastbok.asp )

<br>
<br>
<%
nextPage = TRIM( Request("nextPage"))
IF nextPage = "" THEN nextPage = 1

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gb where gbid='"&request.querystring("id")&"' order by id desc"
rs.Open Addera, Connect, 3, 3

Set rs1 = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&request.querystring("id")&"'"
rs1.Open Addera, Connect, 3, 3

if request.querystring("action")="spara" then
if session("id") <> request.querystring("id") then
rs.addnew
rs("namn")=session("user")
rs("inlagg")=request.form("inlagg")
rs("gbid")= request.querystring("id")
rs.update

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs.Open Addera, Connect, 3, 3
rs("status") = rs("status") + 100
rs.update

response.redirect "gastbok.asp?id="&request.querystring("id")
end if
end if
rs.PageSize = 10
if not rs.EOF then
rs.AbsolutePage = nextPage
%>
<br>
<% END IF
%>
<%
IF rs.PageCount > 1 THEN

%>
Sida:
<%
FOR a = 1 to rs.PageCount
IF a <> cINT( nextPage ) THEN %>
<a href="forum.asp?nextPage=<%=a%>"><%=a%></a>
<%
ELSE %>
(<%=a%>)
<%
END IF
NEXT
end if

  %\>\<br\>

Skriv nått i <%=rs1("anv")%>´s gästbok<br>
<form name="form1" method="post" action="gastbok.asp?action=spara&id=<%=request.querystring("id")%>">
<textarea name="inlagg" rows="4" cols="20"></textarea>
<input type="submit" name="Submit" value="skicka">
</form>
<br>

<%
Do until rs.EOF OR rowCount = rs.PageSize
rowCount = rowCount + 1
%>
<B><%=rs("namn")%></b><br><%=rs("inlagg")%><hr>
<%
rs.movenext
loop
%><br>

VideMedlem sedan dec. 19998 577 inlägg
#5

Skickar du verkligen med ett id i querysträngen? Och är fältet id i databasen av datatype sträng? Om det är en integer så skall du inte ha enkelsnuffar runt värdet i SQL-satsen.

Du får inget radnummer för vart felet inträffar? Felmeddelandet säger att sökningen i databasen inte gav något resultat, och när du sedan försöker använda recordsettet så får du detta felet.

JeppezMedlem sedan jan. 200263 inlägg
#6

Hur menar du?

Fattar n0ll.

VideMedlem sedan dec. 19998 577 inlägg
#7

Vad är det du inte fattar?
Datatyper? Vilken datatyp har fältet ID i databasen?
Querystring? Vad har request.querystring("id") för värde?
Radnummer? På vilken rad blir det fel?

JeppezMedlem sedan jan. 200263 inlägg
#8

Kan vi inte snackas vid på ICQ ? Har addat dig.
Du kan inte ta imott filer? Annars kan jag väl skicka databasen och .asp filen?

VideMedlem sedan dec. 19998 577 inlägg
#9

Nej, jag tar inte kod-diskussioner via ICQ eller IRC, för att det skall hjälpa körs det med all rätt via ett forum där man kan på ett bättre sätt lägga upp förklaring kring kod o.s.v, samt att andra kan ta del och hjälpa till, samt få information kring liknande problem i framtiden.

Så, vi börjar med vart du får problemet, vilken rad?
Varför skapar du ett recordset som heter rs1 som du sedan inte använder? Eller skall den användas men att du har glömt att byta namn där?

JeppezMedlem sedan jan. 200263 inlägg
#10

Du får bild, Liksom... Jag ser inte vilken rad felet ligger på som du kan se.

ddddd.jpg
VideMedlem sedan dec. 19998 577 inlägg
#11

Okej, första gången du kommer till formuläret, skickar du med ett id querysträngen då? Eftersom det krävs, du anger ju det här:

gastbok.asp?action=spara&id=<%=request.querystring("id")%>
JeppezMedlem sedan jan. 200263 inlägg
#12

Ja, det gör jag.

VideMedlem sedan dec. 19998 577 inlägg
#13

Okej, vad har session("id") för värde när du använder den i SQL-satsen?

Denniz PoPMedlem sedan aug. 2002207 inlägg
#14

testa att skriva ut sql-satsen och skriv den här.
Som vide sa tidigare så skall du antagligen inte ha ' med i sql-satsen då ID antagligen är ett numeriskt fält.

Engine^Medlem sedan dec. 20003 887 inlägg
#15
<% 
nextPage = TRIM( Request("nextPage")) 
IF nextPage = "" THEN nextPage = 1 

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb") 
Set rs = Server.CreateObject("ADODB.Recordset") 
[b]Addera = "SELECT * FROM gb where gbid= " & request.querystring("id") & " order by id desc"[/b]
rs.Open Addera, Connect, 3, 3

[b]'Vad i hela friden ska rs1 användas till?[/b]
Set rs1 = Server.CreateObject("ADODB.Recordset") 
[b]Addera = "SELECT * FROM anv where id=" & request.querystring("id")[/b] 
rs1.Open Addera, Connect, 3, 3 

if request.querystring("action")="spara" then 
    if session("id") <> request.querystring("id") then 
        rs.addnew 
        rs("namn")=session("user") [b]'Finns kolumnet namn i tabellen?[/b] 
        rs("inlagg")=request.form("inlagg") [b]'Finns inlagg?[/b]
        rs("gbid")= request.querystring("id") [b]'Finns gbid[/b]
        rs.update
        [b]rs.close[/b]

        Set Connect = Server.CreateObject("ADODB.Connection") 
        Connect.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath ("databas/databas.mdb") 
        Set rs = Server.CreateObject("ADODB.Recordset") 
        [b]Addera = "SELECT * FROM anv where id=" & session("id")[/b]
        rs.Open Addera, Connect, 3, 3 
        rs("status") = rs("status") + 100 
        rs.update 

        response.redirect "gastbok.asp?id="&request.querystring("id") 
    end if 
end if 

Set rs = Nothing
Set rs1 = Nothing
JeppezMedlem sedan jan. 200263 inlägg
#16

Det går inge vidare med GB:N, allt ska fungera... o testat tagit bort rs kolumnérna, men blir bara mer o mer fel..

Ingen som vet vart jag kan ladda ned en GB och ge mig instruktioner hur jag ska gå till väga för att få den att fungera kombitapellt i en community? Så att varje medlem ska kunna få en fungerande GB.

//tacksam för svar

140 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)