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

Gange med 5,33 og opdatere i DB

Hej eksperter...

Jeg kan ikk få det her til at virke...
xp i tabellen skal være 5,33 * hits

strSQL = "Update tbl_Monsters set "

strSQL = strSQL & "[name]='" & Request.Form("strname") & "', "
strSQL = strSQL & "location='" & Request.Form("strlocation") & "', "
strSQL = strSQL & "[level]=" & Request.Form("strlevel") & ", "
strSQL = strSQL & "info='" & Request.Form("strinfo") & "', "
strSQL = strSQL & "hits='" & Request.Form("strhits") & "', "
strSQL = strSQL & "loot_common='" & Request.Form("strloot_common") & "', "
strSQL = strSQL & "loot_rare='" & Request.Form("strloot_rare") & "', "
strSQL = strSQL & "loot_permanent='" & Request.Form("strloot_permanent") & "', "
strSQL = strSQL & "examine='" & Request.Form("strexamine") & "', "
strSQL = strSQL & "type='" & Request.Form("strtype") & "', "
strSQL = strSQL & "member=" & Request.Form("strmember_only") & ", "
strSQL = strSQL & "agressive=" & Request.Form("stragressive") & ", "

if  Request.Form("strhits")="" then
strSQL = strSQL & "xp=0, "
else
strSQL = strSQL & "xp='" & Request.Form("strhits") & "' * 5,33, "

strSQL = strSQL & "quest=" & Request.Form("strquest") & " "
strSQL = strSQL & " Where Id = " & Session("ID")
Avatar billede cronck Nybegynder
22. april 2004 - 21:18 #1
opdagede lige at end if manglede...
Nu får jeg fejlen: [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
Avatar billede Slettet bruger
22. april 2004 - 21:20 #2
sæt [] rundt om type også
Avatar billede Slettet bruger
22. april 2004 - 21:20 #3
strSQL = strSQL & "[type]='" & Request.Form("strtype") & "', "
Avatar billede Slettet bruger
22. april 2004 - 21:21 #4
Hvis du vil være sikker på at dine feltnavne ikke driller så sæt () rundt om alle feltnavnene.
Avatar billede cronck Nybegynder
22. april 2004 - 21:21 #5
virkede altså også inden jeg addede xp tingen, type uden []
Avatar billede Slettet bruger
22. april 2004 - 21:21 #6
Undskyld, mit tastatur driller () skulle være []  :-)
Avatar billede Slettet bruger
22. april 2004 - 21:22 #7
Så prøv
strSQL = strSQL & "xp=" & CDbl(Request.Form("strhits")) & " * 5,33, "
Avatar billede cronck Nybegynder
22. april 2004 - 21:23 #8
Får stadig samme fejl... Alt virkede inden jeg addede
if  Request.Form("strhits")="" then
strSQL = strSQL & "xp=0, "
else
strSQL = strSQL & "xp='" & Request.Form("strhits") & "' * 5,33, "
Avatar billede Slettet bruger
22. april 2004 - 21:23 #9
Eller måske
strSQL = strSQL & "xp=" & CDbl(Request.Form("strhits")) & " * 5.33, "
da databasen sikkert regner med engelsk talformat.
Avatar billede cronck Nybegynder
22. april 2004 - 21:24 #10
Type mismatch: 'CDbl'
Avatar billede Slettet bruger
22. april 2004 - 21:24 #11
2 sek
Avatar billede Slettet bruger
22. april 2004 - 21:25 #12
CDbl skal virke, vil du ikke lige poste linien som du har skrevet den nu?
Avatar billede cronck Nybegynder
22. april 2004 - 21:27 #13
Du får lige hele filen...
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<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">Monster Updated!</font></center>
<div align="center">
  <center>
<table border="0">
  <tr>
    <td>Monster Name:</td>
    <td><%=Request.Form("strname")%></td>
  </tr>
  <tr>
    <td>Location</td>
    <td><%=Request.Form("strlocation")%></td>
  </tr>
  <tr>
    <td>Level</td>
    <td><%=Request.Form("strlevel")%></td>
  </tr>
  <tr>
    <td>Info</td>
    <td><%=Request.Form("strinfo")%></td>
  </tr>
  <tr>
    <td>Hits</td>
    <td><%=Request.Form("strhits")%></td>
  </tr>
  <tr>
    <td>Loot (common)</td>
    <td><%=Request.Form("strloot_common")%></td>
  </tr>
  <tr>
    <td>Loot (rare)</td>
    <td><%=Request.Form("strloot_rare")%></td>
  </tr>
  <tr>
    <td>Loot Permanent</td>
    <td><%=Request.Form("strloot_permanent")%></td>
  </tr>
  <tr>
    <td>Examine</td>
    <td><%=Request.Form("strexamine")%></td>
  </tr>
  <tr>
    <td>Type</td>
    <td><%=Request.Form("strtype")%></td>
  </tr>
  <tr>
    <td>Members Only</td>
    <td><%=Request.Form("strmember_only")%></td>
  </tr>
  <tr>
    <td>Agressive</td>
    <td><%=Request.Form("stragressive")%></td>
  </tr>
  <tr>
    <td>Quest Monster</td>
    <td><%=Request.Form("strquest")%></td>
  </tr>
</table>
Click <a href="monster.asp?id=<%=Session("ID")%>">here</a> to go straight to the monster<br>
Click <a href="monsters.asp">Here</a> to go to the monsters list<br>
  </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_Monsters set "

strSQL = strSQL & "[name]='" & Request.Form("strname") & "', "
strSQL = strSQL & "location='" & Request.Form("strlocation") & "', "
strSQL = strSQL & "[level]=" & Request.Form("strlevel") & ", "
strSQL = strSQL & "info='" & Request.Form("strinfo") & "', "
strSQL = strSQL & "hits='" & Request.Form("strhits") & "', "
strSQL = strSQL & "loot_common='" & Request.Form("strloot_common") & "', "
strSQL = strSQL & "loot_rare='" & Request.Form("strloot_rare") & "', "
strSQL = strSQL & "loot_permanent='" & Request.Form("strloot_permanent") & "', "
strSQL = strSQL & "examine='" & Request.Form("strexamine") & "', "
strSQL = strSQL & "[type]='" & Request.Form("strtype") & "', "
strSQL = strSQL & "member=" & Request.Form("strmember_only") & ", "
strSQL = strSQL & "agressive=" & Request.Form("stragressive") & ", "

if  Request.Form("strhits")="" then
strSQL = strSQL & "xp=0, "
else
strSQL = strSQL & "xp=" & CDbl(Request.Form("strhits")) & " * 5.33, "
end if

strSQL = strSQL & "quest=" & Request.Form("strquest") & " "
strSQL = strSQL & " Where Id = " & Session("ID")

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>
Avatar billede Slettet bruger
22. april 2004 - 21:27 #14
Sådan, du skal jo ikke gange med en streng men et tal :-)
strSQL = strSQL & "xp=" & CDbl(Request.Form("strhits")) * 5.33 & ", "
Avatar billede cronck Nybegynder
22. april 2004 - 21:29 #15
Hehe... Prøver lige
Avatar billede cronck Nybegynder
22. april 2004 - 21:30 #16
Det virker... Takker for hjælpen
Avatar billede Slettet bruger
22. april 2004 - 21:32 #17
Velbekomme og tak for point :-)
Avatar billede cronck Nybegynder
23. april 2004 - 18:59 #18
Der er lige en anden ting... Når jeg tallet bliver added skrive den . istedet for komma så mine tal bliver lidt for store... 1.066,00 som der står i min Db skulle have været 10,66
Avatar billede Slettet bruger
25. april 2004 - 21:21 #19
Så bliver du nødt til at dividere med 100 bagefter

strSQL = strSQL & "xp=" & (CDbl(Request.Form("strhits")) * 5.33) / 100 & ", "
Avatar billede cronck Nybegynder
25. april 2004 - 22:25 #20
Nemlig... fandt ud af det.. :D
Avatar billede Slettet bruger
25. april 2004 - 22:45 #21
Godt :-)
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