webForumDet fria alternativet

Får ett felmeddelande men hittar inget fel.

ASP

21 svar · 498 visningar · startad av Dashi

Medlem sedan jan. 2005296 inlägg
Frågan#1

Asså jag har ett alvarligt problem, får felmeddelande men hittar inget fel ju, felmeddelandet jag får ser ut såhär:

Feltyp:
ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/masterdata/installningar.asp, line 340

Sida:
POST 150 bytes to /masterdata/installningar.asp

POST Data:
upperson_nr=8989889&upuser=test&uppass=test&upforetag=test&upnamn=test&upadress=test&uppost_nr=test&upstad=test&uptele=test&upepost=test&Submit=Skicka

skickar med lite kod här så ni får se...

<%
user=Request.Querystring("user")
		  
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(masterdata_databas)

Set RecSet = Server.CreateObject("ADODB.Recordset")

If Request.QueryString("updatera") = "" Then 

Visa = "SELECT * FROM kunder WHERE user = '" & user & "' ORDER BY user" 

RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic 

%>
<form method="post" action="installningar.asp?updatera=ny">
              <br>
              <font size="2" face="Times New Roman, Times, serif"></font> 
              <table cellpadding="2" cellspacing="1" border="0">
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_person_nr%>:</font></td>
                  <td> 
                    <input type=text name="upperson_nr" value="<% =RecSet("person_nr") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_user%>:</font></td>
                  <td> 
                    <input type=text name="upuser" value="<% =RecSet("user") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_pass%>:</font></td>
                  <td> 
                    <input type=text name="uppass" value="<% =RecSet("pass") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_foretag%>:</font></td>
                  <td> 
                    <input type=text name="upforetag" value="<% =RecSet("foretag") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_namn%>:</font></td>
                  <td> 
                    <input type=text name="upnamn" value="<% =RecSet("namn") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_adress%>:</font></td>
                  <td> 
                    <input type=text name="upadress" value="<% =RecSet("adress") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_post_nr%>:</font></td>
                  <td> 
                    <input type=text name="uppost_nr" value="<% =RecSet("post_nr") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_stad%>:</font></td>
                  <td> 
                    <input type=text name="upstad" value="<% =RecSet("stad") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_tele%>:</font></td>
                  <td> 
                    <input type=text name="uptele" value="<% =RecSet("tele") %>" size=40>
                  </td>
                </tr>
                <tr bgcolor="#D9D9D9"> 
                  <td> <font size="2" face="Times New Roman, Times, serif"><%=txt_epost%>:</font></td>
                  <td bgcolor="#D9D9D9"> 
                    <input type=text name="upepost" value="<% =RecSet("epost") %>" size=40>
                  </td>
                </tr>
                <tr> 
                  <td align=center colspan=2> 
                    <input type=submit name=Submit value="<%=txt_submit%>" class="button">
                    <input type=reset value="<%=txt_rensa%>" class="button" name="reset">
                  </td>
                </tr>
              </table>
            </form>
<%RecSet.Close
		
End If%>
            
<% If Request.Querystring("updatera") = "ny" Then

Uppdatera = "SELECT * FROM kunder WHERE user = '" & user & "' ORDER BY user"

RecSet.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic

		RecSet("person_nr") = Request.Form("upperson_nr")
		RecSet("user") = Request.Form("upuser")
		RecSet("pass") = Request.Form("uppass")
		RecSet("foretag") = Request.Form("upforetag")
		RecSet("namn") = Request.Form("upnamn")
		RecSet("adress") = Request.Form("upadress")
		RecSet("post_nr") = Request.Form("uppost_nr")
		RecSet("stad") = Request.Form("upstad")
		RecSet("tele") = Request.Form("uptele")
		RecSet("epost") = Request.Form("upepost")

RecSet.Update
	RecSet.Close

Connect.Close
	Set RecSet = nothing
	Set Connect = nothing

Response.Redirect "installningar.asp?updatera=klar"
End If
%>
     <%If Request.Querystring("updatera") = "klar" Then%>
            <div align="center"><font face="Times New Roman, Times, serif" size="2"><b><br>
              Dina uppgifter har nu updaterats!</b></font> 
              <%End If%>
            </div>

ursäkta för att koden blev så lång, men jag vet inte var felet ligger så vet ju inte annars vilken del jag ska skicka :P
Den säger att felet ligger på line 340, line 340 ser ut såhär:

RecSet.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic

Hoppas någon kan hitta felet..

Tack på förhand.. Mvh //Darek

Medlem sedan juni 200032 967 inlägg
#2

Din SELECT-fråga genererar inget resultat, dvs inget matchar WHERE-satsen. Det kan bero på att Request.Form("user") är tom. Ska det inte vara Request.Form("upuser")?

Dessutom: kontrollera alltid att inte ett recordset är tomt innan du försöker göra saker med det.

Medlem sedan jan. 2005296 inlägg
#3

detta är resultatet till where frågan user=Request.Querystring("user") har ju where frågan på 2 ställen och på den första funkar den som den ska för annars skulle den inte visa innehållet i tabellen när den läser info från databasen.. vilken Request.Form("user") menar du som skulle vara Request.Form("upuser")?

Mvh //Darek

Medlem sedan juni 200032 967 inlägg
#4

Jag vet inte, jag kanske missuppfattar din kod.

Jag ser ju bara att du har postat något som heter "upuser" till sidan.

Ett bra tips är att skriva ut de färdiga SQL-frågorna för att se om något ser galet ut, och så kan du testa frågorna direkt i Access för att se om det blir skillnad.

Medlem sedan feb. 2005248 inlägg
#5

Du har glömt att skicka med Querystringen till sidan där du uppdaterar databasen. Ändra form-taggen till den här:

<form method="post" action="installningar.asp?updatera=ny&user=<%=Request.Querystring("user")%>">

Mvh,
Jakob Arnell

Medlem sedan jan. 2005296 inlägg
#6

såja nu hitta jag felet, ligger där du sa i själva where frågan.. ändra det till:
Uppdatera = "SELECT * FROM kunder WHERE user = 'test' ORDER BY user" så funkar det, men hur ska jag ändra de så att det går efter varje enskild user nu då? för för tillfället går det ju bara på user test, eftersom på den första where frågan använda jag mig av Visa = "SELECT * FROM kunder WHERE user = '" & user & "' ORDER BY user" som resulterar till user=Request.Querystring("user") men det funkar inte på samma sätt i den andra where frågan, eller jag hade ju det satt samma på den andra som på den första men det funka ju inte..

Mvh //Darek

Medlem sedan feb. 2005248 inlägg
#7

Som sagt, ändra inte i sql-satsen. Det är inte så konstigt att den inte returnerar något eftersom variabeln user är tom. Testa med det jag skrev ovan.

Medlem sedan jan. 2005296 inlägg
#8

Ladytron: jo de funka just på det visset, visste att det va något korkat jag har missat :P sidan e ju länkad som <a href="installningar.asp?user=<% =Request.Querystring("user") %>" TARGET="main"> så när den utför sumbiten så läser den om sidan och missar då den grejen helt och hållet och då måste man lägga om den.. hehe, du e smart du, folk börja sitta och klura på detta varför det inte stämmer, hehe men du löste det.. jag blev själv ett rent frågetecken när jag kolla koden minst 30 gånger och hitta inga fel :P sen börja den uppmärksama mig på en line som de va fel på fast det igentligen inte va något fel :P Men men... Tack för hjälpen iallafall :P

Mvh //Darek

Medlem sedan juni 200032 967 inlägg
#9

Nästa gång: ta för vana att skriva ut SQL-frågorna. Då ser du enkelt att "hoppsan, här saknas det något". Lättare att hitta felet när man vet vart man ska leta.

Mvh

Medlem sedan jan. 2005296 inlägg
#10

Ladytron: när vi väl nu är igång och du e så bra på felsökning, skulle du ha lust att hjälpa mig med en annan grej som jag inte kommer underfull med, har en webbshop, jag lägger till en produkt på gånger, då lägger den produkten som 2 produkter i kassan, jag skulle vilja att den ändrar antal till 2 istället..

Medlem sedan juni 200032 967 inlägg
#11

Ett forum är ett fleranvändarsystem. Om du vill Ladytron något specifikt, så använd PM.

Det finns många som kan svara på frågan (exempelvis vänstertecknad).

Medlem sedan jan. 2005296 inlägg
#12

@nders: skriva ut SQL-frågorna? hur menar du?

Medlem sedan juni 200032 967 inlägg
#13

Om du kallar variabeln som i ditt exempel för Uppdatera:

Response.write  Uppdatera

Då får du se hur den färdiga SQL-frågan ser ut.

Medlem sedan jan. 2005296 inlägg
#14

@nders: jag vet vad ett forum är, eftersom jag sett samma fråga tidigare på detta forum och det inte har blivit besvarat tänkte jag försöka få svar på den frågan och skicka ut den så andra kan ta del av den sen..

Medlem sedan juni 200032 967 inlägg
#15

Jo, men skriv då inte det som en personlig fråga till en viss person. Då svarar ju inte jag, till exempel.

Medlem sedan jan. 2005296 inlägg
#16

@nders: ne ifs, tänkte bara på att ladytron kolla igenom det hela ordentligt och kunde kanske komma på en lösning direkt..

Medlem sedan jan. 2005296 inlägg
#17

men jag skickar ut lite kod så får ni kolla om ni hittar något

Medlem sedan juni 200032 967 inlägg
#18

Ok.

Jag har i alla fall en länk till ett exempel om det skulle vara intressant.

Medlem sedan feb. 2005248 inlägg
#19

Haha, jag är knappast något felsökningsproffs.
Skriv frågorna här istället, mycket större chans att du får ett bra svar då.

Medlem sedan jan. 2005296 inlägg
#20

här är själva koden som läses när man trycker på köp:

	//  add item to the shoppingbasket

        function addItem(newItem, newPrice, newQuantity, newNumber, newWeight) {
		if (newQuantity >= 1000) {
			rc = alert('<%=txt_fel_antal%>!');
		} else {
                if (newQuantity >= 1) {
				top.frames[3].location = "middle_right.asp";
                        index = document.cookie.indexOf("ShoppingBasket");
                        countbegin = (document.cookie.indexOf("=", index) + 1);
                        countend = document.cookie.indexOf(";", index);
                        if (countend == -1) {
                        countend = document.cookie.length;
                        }
		                document.cookie="ShoppingBasket="+document.cookie.substring(countbegin, countend)+"["+newItem+"|"+newPrice+"|"+newNumber+"|"+newWeight+"|"+newQuantity+"]";
			}
		}
	}

	function resetShoppingBasket() {
		index = document.cookie.indexOf("ShoppingBasket");
		document.cookie="ShoppingBasket=.";
	}
</script>
      <script language="JavaScript">resetShoppingBasket()</script>
272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)