Avatar billede cronck Nybegynder
17. april 2004 - 21:01 Der er 14 kommentarer og
1 løsning

Fejl ved opdatering af DB

Hej eksperter...
Jeg kan ikke opdatere min database af en eller anden mystisk årsag... Den skriver ikke nogen fejl-meddelelse, skriver bare at der er visse problemer på den side man forsøger at åbne...
Kan en af jer spotte fejlen?

------------------------------------------
Update_item.asp
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("cgi-bin/itemsandmonsters.mdb")
Conn.Open DSN

strSQLItem = "Select * from tbl_Items where id = " & request.querystring("id")
Set rsItem = Conn.Execute(strSQLItem)

%>
<html>
<head>
<title>RSFever</title>
<LINK href="style.css" type=text/css rel=stylesheet>
</head>
<body bgcolor="#000000" text="#FFFFFF" link="#008000" vlink="#008000" alink="#008000">
<form method="POST" action="update_item_handler.asp">
<div align="center">
  <center><a href="default.asp">Back</a>
<table border="0">
  <tr>
    <td>Item Name:</td>
    <td>
  <input type="text" name="strname" size="20" value="<%=rsItem("name")%>"></td>
  </tr>
  <tr>
    <td>Shop Price:</td>
    <td><input type="text" name="strshop_selling" size="20" value="<%=rsItem("shop_selling")%>">
    </td>
  </tr>
  <tr>
    <td>Where do u get the item?</td>
    <td>
    <input type="text" name="strfound" size="20"value="<%=rsItem("found")%>">
    </td>
  </tr>
  <tr>
    <td>When examine it says:</td>
    <td><input type="text" name="strexamine" size="20"value="<%=rsItem("examine")%>">
    </td>
  </tr>
  <tr>
    <td>High Alc.</td>
    <td><input type="text" name="stralc_high" size="20"value="<%=rsItem("alc_high")%>">
    </td>
  </tr>
  <tr>
    <td>Type</td>
    <td><input type="text" name="strtype" size="20"value="<%=rsItem("type")%>">
    </td>
  </tr>
  <tr>
    <td>Requirements?</td>
    <td><input type="text" name="strrequirements" size="20"value="<%=rsItem("requirements")%>">
    </td>
  </tr>
  <tr>
    <td>Members only?</td>
    <td><select size="1" name="strmember_only">
    <% if rsItem("member_only")=False then%>
    <option selected>No</option><option>Yes</option>
    <% else %>
    <option selected>Yes</option><option>No</option>
    <% end if %></select>
    </td>
  </tr>
  <tr>
    <td>Rare</td>
    <td><select size="1" name="strrare">
    <% if rsItem("rare")=False then%>
    <option selected>No</option><option>Yes</option>
    <% else %>
    <option selected>Yes</option><option>No</option>
    <% end if %></select>
    </td>
  </tr>
  <tr>
    <td>Quest Item</td>
    <td><select size="1" name="strquest">   
    <% if rsItem("quest")=False then%>
    <option selected>No</option><option>Yes</option>
    <% else %>
    <option selected>Yes</option><option>No</option>
    <% end if %></select>
    </td>
  </tr>
  <tr>
    <td>Tradeable</td>
    <td><select size="1" name="strtradeable">
    <% if rsItem("tradeable")=False then%>
    <option selected>No</option><option>Yes</option>
    <% else %>
    <option selected>Yes</option><option>No</option>
    <% end if %></select>
    </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Update" name="submit"></td>
  </tr>
</table>
  </center>
</div>
</form>
</body>
</html>
<%
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

------------------------------------------------
Update_item_handler.asp
<html>
<head>
<title>RSFever</title>
<LINK href="style.css" type=text/css rel=stylesheet>
</head>
<body bgcolor="#000000" text="#FFFFFF" link="#008000" vlink="#008000" alink="#008000">
<center><font size="5">Item Added!</font></center>
<div align="center">
  <center>
<table border="0">
  <tr>
    <td>Item Name:</td>
    <td><%=Request.Form("strname")%></td>
  </tr>
  <tr>
    <td>Shop Price</td>
    <td><%=Request.Form("strshop_selling")%></td>
  </tr>
  <tr>
    <td>Level</td>
    <td><%=Request.Form("strfound")%></td>
  </tr>
  <tr>
    <td>Members only?</td>
    <td><%=Request.Form("strexamine")%></td>
  </tr>
  <tr>
    <td>Hits</td>
    <td><%=Request.Form("stralc_high")%></td>
  </tr>
  <tr>
    <td>Loot (Common)</td>
    <td><%=Request.Form("strtype")%></td>
  </tr>
  <tr>
    <td>Loot (Rare)</td>
    <td><%=Request.Form("strrequirements")%></td>
  </tr>
  <tr>
    <td>Loot (Always)</td>
    <td><%=Request.Form("strmember_only")%></td>
  </tr>
  <tr>
    <td>When examine it says:</td>
    <td><%=Request.Form("strrare")%></td>
  </tr>
  <tr>
    <td>Agressive?</td>
    <td><%=Request.Form("strquest")%></td>
  </tr>
  <tr>
    <td>Type (Animal, Giant etc.)</td>
    <td><%=Request.Form("strtradeable")%></td>
  </tr>
</table>
  </center>
</div>
</body>
</html>

<%
response.buffer = true

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/itemsandmonsters.mdb")
Conn.Open DSN

strSQL = "Update tbl_Items set "

strSQL = strSQL & "[name]= Request.Form("strname") & "', "
strSQL = strSQL & "shop_selling= Request.Form("strshop_selling") & "', "
strSQL = strSQL & "found= Request.Form("strfound") & "', "
strSQL = strSQL & "examine= Request.Form("strexamine") & "', "
strSQL = strSQL & "alc_high= Request.Form("stralc_high") & "', "
strSQL = strSQL & "type= Request.Form("strtype") & "', "
strSQL = strSQL & "requirements= Request.Form("strrequirements") & "', "
strSQL = strSQL & "member_only= Request.Form("strmember_only") & ", "
strSQL = strSQL & "rare= Request.Form("strrare") & ", "
strSQL = strSQL & "tradeable= Request.Form("strtradeable") & ", "
strSQL = strSQL & "quest= Request.Form("strquest") & ") "

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede eagleeye Praktikant
17. april 2004 - 21:06 #1
Du skal havde rettet alle linjer med Request.Form("strname") fra :

strSQL = strSQL & "[name]= Request.Form("strname") & "', "

til:

strSQL = strSQL & "[name]= '" & Request.Form("strname") & "', "


er det en tal kolonne skal der ikke ' foran sådan her:
strSQL = strSQL & "member_only= " & Request.Form("strmember_only") & ", "
Avatar billede cronck Nybegynder
17. april 2004 - 21:08 #2
ok... Prøver :D
Avatar billede cronck Nybegynder
17. april 2004 - 21:08 #3
har osse sat [] udenom type... Havde jeg glemt
Avatar billede boris Mester
17. april 2004 - 21:09 #4
Jeg ville f.eks. skrive (eksempel en linie)
strSQL = strSQL & "shop_selling='" & Request.Form("strshop_selling") & "', "
Avatar billede cronck Nybegynder
17. april 2004 - 21:11 #5
Updated!
---------------------------------------------------
update_item_handler.asp
<html>
<head>
<title>RSFever</title>
<LINK href="style.css" type=text/css rel=stylesheet>
</head>
<body bgcolor="#000000" text="#FFFFFF" link="#008000" vlink="#008000" alink="#008000">
<center><font size="5">Item Added!</font></center>
<div align="center">
  <center>
<table border="0">
  <tr>
    <td>Item Name:</td>
    <td><%=Request.Form("strname")%></td>
  </tr>
  <tr>
    <td>Shop Price</td>
    <td><%=Request.Form("strshop_selling")%></td>
  </tr>
  <tr>
    <td>Level</td>
    <td><%=Request.Form("strfound")%></td>
  </tr>
  <tr>
    <td>Members only?</td>
    <td><%=Request.Form("strexamine")%></td>
  </tr>
  <tr>
    <td>Hits</td>
    <td><%=Request.Form("stralc_high")%></td>
  </tr>
  <tr>
    <td>Loot (Common)</td>
    <td><%=Request.Form("strtype")%></td>
  </tr>
  <tr>
    <td>Loot (Rare)</td>
    <td><%=Request.Form("strrequirements")%></td>
  </tr>
  <tr>
    <td>Loot (Always)</td>
    <td><%=Request.Form("strmember_only")%></td>
  </tr>
  <tr>
    <td>When examine it says:</td>
    <td><%=Request.Form("strrare")%></td>
  </tr>
  <tr>
    <td>Agressive?</td>
    <td><%=Request.Form("strquest")%></td>
  </tr>
  <tr>
    <td>Type (Animal, Giant etc.)</td>
    <td><%=Request.Form("strtradeable")%></td>
  </tr>
</table>
  </center>
</div>
</body>
</html>

<%
response.buffer = true

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/itemsandmonsters.mdb")
Conn.Open DSN

strSQL = "Update tbl_Items set "

strSQL = strSQL & "[name]= '" & Request.Form("strname") & "', "
strSQL = strSQL & "shop_selling= " & Request.Form("strshop_selling") & ", "
strSQL = strSQL & "found= '" & Request.Form("strfound") & "', "
strSQL = strSQL & "examine= '" & Request.Form("strexamine") & "', "
strSQL = strSQL & "alc_high= " & Request.Form("stralc_high") & ", "
strSQL = strSQL & "[type]= '" & Request.Form("strtype") & "', "
strSQL = strSQL & "requirements= '" & Request.Form("strrequirements") & "', "
strSQL = strSQL & "member_only= Request.Form("strmember_only") & ", "
strSQL = strSQL & "rare= Request.Form("strrare") & ", "
strSQL = strSQL & "tradeable= Request.Form("strtradeable") & ", "
strSQL = strSQL & "quest= Request.Form("strquest") & ") "

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede cronck Nybegynder
17. april 2004 - 21:12 #6
Ups... så lige at jeg mangler " & på de nederste.. Fjols*
Avatar billede cronck Nybegynder
17. april 2004 - 21:13 #7
Såådan... Nu får jeg da en fejlmeddelelse:
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e14'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "'Bought from Hero's Guild', examine= 'Hello!', alc_high= 0, [type]= 'Weapon', requirements= '60 Attack', member_only=Yes, rare=No, tradeable=Yes, quest=No)".

/update_item_handler.asp, linje 83
Avatar billede cronck Nybegynder
17. april 2004 - 21:17 #8
Mangler Where ID= bla bla....
Avatar billede eagleeye Praktikant
17. april 2004 - 21:18 #9
Hvis der er ' i teksten skal den udskiftes med to '' så prøv at replace en ' med to ''
ret:
strSQL = strSQL & "found= '" & Request.Form("strfound") & "', "

til:

strSQL = strSQL & "found= '" & replace(Request.Form("strfound"),"'","''") & "', "
Avatar billede eagleeye Praktikant
17. april 2004 - 21:19 #10
ja du mangler også det med where id :)
Avatar billede cronck Nybegynder
17. april 2004 - 21:20 #11
der er osse en parantes som ikk skal være der i sidste strSQL
Avatar billede cronck Nybegynder
17. april 2004 - 21:27 #12
Jeg har skudt Session("ID")= Request.querystring ind i update_item.asp
og update_item_handler.asp ser nu således ud:

<html>
<head>
<title>RSFever</title>
<LINK href="style.css" type=text/css rel=stylesheet>
</head>
<body bgcolor="#000000" text="#FFFFFF" link="#008000" vlink="#008000" alink="#008000">
<center><font size="5">Item Added!</font></center>
<div align="center">
  <center>
<table border="0">
  <tr>
    <td>Item Name:</td>
    <td><%=Request.Form("strname")%></td>
  </tr>
  <tr>
    <td>Shop Price</td>
    <td><%=Request.Form("strshop_selling")%></td>
  </tr>
  <tr>
    <td>Level</td>
    <td><%=Request.Form("strfound")%></td>
  </tr>
  <tr>
    <td>Members only?</td>
    <td><%=Request.Form("strexamine")%></td>
  </tr>
  <tr>
    <td>Hits</td>
    <td><%=Request.Form("stralc_high")%></td>
  </tr>
  <tr>
    <td>Loot (Common)</td>
    <td><%=Request.Form("strtype")%></td>
  </tr>
  <tr>
    <td>Loot (Rare)</td>
    <td><%=Request.Form("strrequirements")%></td>
  </tr>
  <tr>
    <td>Loot (Always)</td>
    <td><%=Request.Form("strmember_only")%></td>
  </tr>
  <tr>
    <td>When examine it says:</td>
    <td><%=Request.Form("strrare")%></td>
  </tr>
  <tr>
    <td>Agressive?</td>
    <td><%=Request.Form("strquest")%></td>
  </tr>
  <tr>
    <td>Type (Animal, Giant etc.)</td>
    <td><%=Request.Form("strtradeable")%></td>
  </tr>
</table>
  </center>
</div>
</body>
</html>

<%
response.buffer = true

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/itemsandmonsters.mdb")
Conn.Open DSN

strSQL = "Update tbl_Items set "

strSQL = strSQL & "[name]='" & Request.Form("strname") & "', "
strSQL = strSQL & "shop_selling=" & Request.Form("strshop_selling") & ", "
strSQL = strSQL & "found='" & Request.Form("strfound") & "', "
strSQL = strSQL & "examine='" & Request.Form("strexamine") & "', "
strSQL = strSQL & "alc_high=" & Request.Form("stralc_high") & ", "
strSQL = strSQL & "[type]='" & Request.Form("strtype") & "', "
strSQL = strSQL & "requirements='" & Request.Form("strrequirements") & "', "
strSQL = strSQL & "member_only=" & Request.Form("strmember_only") & ", "
strSQL = strSQL & "rare=" & Request.Form("strrare") & ", "
strSQL = strSQL & "tradeable=" & Request.Form("strtradeable") & ", "
strSQL = strSQL & "quest=" & Request.Form("strquest") & " "
strSQL = strSQL & " Where Id = request.Session("ID") "

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

-----------------------------

Jeg bliver nød til at smutte en halv times tid, kan du ikk selv teste imens jeg er væk?
Databasen skal ligge under mappen "cgi-bin" og databasen kan du hente her'http://frip.dk/cronck/itemsandmonsters.rar
Avatar billede eagleeye Praktikant
17. april 2004 - 21:29 #13
Så skal den sidte linje:
strSQL = strSQL & " Where Id = request.Session("ID") "

være sådan her:
strSQL = strSQL & " Where Id = " & Session("ID")
Avatar billede cronck Nybegynder
17. april 2004 - 21:48 #14
Sådan... Det virker.. Bare svar
Avatar billede eagleeye Praktikant
17. april 2004 - 21:49 #15
ok :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester