21. december 2003 - 21:43Der er
21 kommentarer og 1 løsning
Hvad er fejlen her? (Either BOF or EOF is True)
jeg prøver at opdatere en record men jeg får denne fejl: ADODB.Field (0x80020009) Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Jeg har søgt flere steder for at finde fejlen og er da oxo kommet videre, men nu fortæller browseren ikke mere i hvilken linje fejlen er opstået, og så er jeg lost...
jeg bruger den samme fil til at vis brugere og opdatere records.
et uddrag fra default.asp hvor jeg arbejder med at få opdateret en brugers data: <% if mode = "edit" then if session("brugernavn") = "" then Response.Redirect("default.asp?mode=login") end if Set rs = Server.CreateObject("ADODB.Recordset") sql = "select * from bruger where id=" & CInt request.querystring("id")) rs.open sql, conn, 1, 3 if Request.ServerVariables("REQUEST_METHOD") = "POST" then if not rs.eof then rs.update rs("brugernavn") = Server.HTMLEncode(Request("navn")) rs("brugerkode") = Server.HTMLEncode(Request("adgangskode")) rs("brugeralder") = Server.HTMLEncode(Request("alder")) rs("brugeremail") = Server.HTMLEncode(Request("email")) rs("brugerHjemmeside") = Server.HTMLEncode(Request("hjemmeside")) rs("BrugerICQ") = Server.HTMLEncode(Request("icq")) rs("brugerTekst") = Server.HTMLEncode(Request("fri_tekst")) rs("admin") = Server.HTMLEncode(Request("admin")) rs("visnick") = Server.HTMLEncode(Request("showname")) rs("nick") = Server.HTMLEncode(Request("nick")) rs("bane") = Server.HTMLEncode(Request("bane")) rs("weapon") = Server.HTMLEncode(Request("weapon")) rs.update end if end if %> <table width="100%"> <tr> <td> <table width="100%"><tr><td width="100%" class="form"> Rediger <%=rs("brugernavn")%>'s profil: </td></tr></table> <form method="post" action="default.asp?mode=edit" id="form2" name="form2"> <table border="0" width="100%" > <tr> <td width="200px"><font class="main-menu"><b>Brugernavn:</b></font></td> <td><input class="form" type="text" name="navn" value="<%=rs("brugernavn")%>" size="30"></td> </tr> bla bla bla og så resten af formen ..... Formen poster til mode=edit hvilket skulle virker ok og det er oxo brugt flere steder med succes.
Du har nok en rs.update for meget - den første er overflødig. Og så mangler der vist en ( i linien sql = "select * from bruger where id=" & CInt request.querystring("id"))
Denne sql ser da lidt sjov ud: sql = "select * from bruger where id=" & CInt request.querystring("id"))
Ved ikke om det er en copy/paste fejl eller noget.. eller skal der ikke være: CInt(request.querystring("id")) - for mig ser det ud til at der mangler en parantes.
Ved godt det ikke var det din fejl gik på, men det var lige hvad jeg faldt over! :-)
->dna det var en copy /paste fejl fra min side - men: jeg fik denne fejl (Syntax error (missing operator) in query expression 'id=') da jeg bruget: sql = "select * from bruger where id=" & request.querystring("id") så derfor bruger jeg: sql = "select * from bruger where id=" & CInt request.querystring("id")) ...indtil nu... da den ikke giver sådan en fejl...
->erikjacobsen under formen ved <input class="form" type="text" name="navn" value="<%=rs("brugernavn")%>" size="30"> så vises formen før der sendes (post) til asp koden og i formen vises et brugernavn.... jeg har fjernet den første rs.update ....
->bertie mener du at rs.update ikke er en valid måde?
Hvis du får Syntax error (missing operator) in query expression 'id=') er det fordi din request.querystring("id") er tom. Cint laver den så til et 0 Det er der sikkert ingen bruger der hedder, derfor ingenting i dit rs
Synes godt om
Slettet bruger
21. december 2003 - 22:08#9
Nej, jeg mener bare at man skal lave rs.edit rs("felt")= noget rs.update.
men nu får jeg fejlen: Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /deltavings/default.asp, line 1034
Ookay, selv om fejlen li'som kom et helt andet sted fra...
Men du slipper ikke for at par opdragende bemærkninger fra mig. Du havde en struktur, der lignede:
if not rs.eof then ....noget med rs - fint nok end if
...noget andet med rs - dumt
Du har nemlig spurgt på rs et sted hvor du ikke vidste den var gyldig. Du kunne have gjort det sikkert brugerid="" if not rs.eof then ....noget med rs - fint nok brugerid=rs("...") end if
mm forstået, ved brugen af brugerid istedet for id ville have struktureret koden bedre for mig. thx
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.