webForumDet fria alternativet
Logga in / Bli medlem

Problem med update

ASP

9 svar · 217 visningar · startad av sven

Medlem sedan aug. 2001383 inlägg
Trådstart#1

Hjälp mig någon. Har suttit fast med detta en tid....
Jag hämtar data till ett formulär. Detta funkar bra. Men när man sen skall uppdatera får jag bara internt serverfel...
Formuläret ser ut så här:
<html>
<head>
<!-- #include file="../../connection.asp" -->
<!-- #include file="../../text.css" -->
</head>
<body>

\<%
ful = Request.Querystring("do")
SQL = "SELECT \* FROM om WHERE ID LIKE '" & ful & "'"
set rs = db.Execute(SQL)
%\>

<form method="POST" action="updateproj.asp">
<table border="0" width="100%">
<input type="hidden" name="ID" value=<%=rs("ID")%>>
<tr>
<td width="15%">Rubrik</td>
<td width="85%"><input type="text" name="rubrik" size="50" value="<%=rs("rubrik")%>"></td>
</tr>
<tr>
<td width="15%">Underrubrik</td>
<td width="85%"><input type="text" name="underrubrik" size="50" value="<%=rs("underrubrik")%>"></td>
</tr>
<tr>
<td width="15%">Bakgrund</td>
<td width="85%"><textarea rows="10" name="bakgrund" cols="38"><%=rs("bakgrund")%></textarea></td>
</tr>
<tr>
<td width="15%">Text</td>
<td width="85%"><textarea rows="10" name="text" cols="38"><%=rs("text")%></textarea></td>
</tr>
<tr>
<td width="15%">Kontaktperson</td>
<td width="85%"><input type="text" name="kontaktperson" size="50" value="<%=rs("kontaktperson")%>"></td>
</tr>
<tr>
<td width="15%">E-post</td>
<td width="85%"><input type="text" name="mail" size="50" value="<%=rs("mail")%>"></td>
</tr>
<tr>
<td width="15%">Organisation</td>
<td width="85%"><input type="text" name="organisation" size="50" value="<%=rs("organisation")%>"></td>
</tr>
<tr>
<td width="15%">Adress</td>
<td width="85%"><input type="text" name="adress" size="50" value="<%=rs("adress")%>"></td>
</tr>
<tr>
<td width="15%">Postnummer</td>
<td width="85%"><input type="text" name="postnummer" size="50" value="<%=rs("postnummer")%>"></td>
</tr>
<tr>
<td width="15%">Postadress</td>
<td width="85%"><input type="text" name="postadress" size="50" value="<%=rs("postadress")%>"></td>
</tr>
<tr>
<td width="15%"></td>
<td width="85%"><input type="submit" value="Skicka" name="update"></td>
</tr>

</table>
</form>
<%
db.close
%>
</body>
</html>

Sen kommer uppdateringen
<% Response.Buffer = True %>

<!-- #include file="../../connection.asp" -->

<%
SQL = "UPDATE om SET rubrik = '" & Request.Form("rubrik") & "', underrubrik = '" & Request.Form("underrubrik") & "', bakgrund = '" & Request.Form("bakgrund") & "', text = '" & Request.Form("text") & "', kontaktperson = '" & Request.Form("kontaktperson") & "', mail = '" & Request.Form("mail") & "', organisation = '" & Request.Form("organisation") & "', adress = '" & Request.Form("adress") & "', postnummer = '" & Request.Form("postnummer") & "', postadress = '" & Request.Form("postadress") & "' WHERE ID = " & Request.Form("ID") & ""
db.Execute(SQL)

db.close

Response.Redirect("ok.asp")
%>
Är det någon som kan hitta felet?? eller vad det kan vara. Jag kör liknande uppdateringar på andra ställen och dom funkar...
/Sven

Medlem sedan juni 200032 967 inlägg
#2

Det finns inget som heter internt serverfel, utan det är din internet explorer som är dum.

Ta bort Friendly error messages / Egna http-felmeddelanden så får du ett riktigt felmeddelande.

Red: och ge oss det felmeddelandet och gärna en response.write-utskrift av din kompletta SQL-fråga, så ska det nog gå att lösa.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#3

Ändra inställningen i browsern så att du kan se det riktiga felet

Under tools --> internet options --> advanced

finns en ruta där det står

show user friendly HTTP error messages

Omarkera den.

En fråga:

Det kan vara intressant att se hur sql-satsen ser ut

<%
SQL = "UPDATE om SET rubrik = '" & Request.Form("rubrik") & "', underrubrik = '" & Request.Form("underrubrik") & "', bakgrund = '" & Request.Form("bakgrund") & "', text = '" & Request.Form("text") & "', kontaktperson = '" & Request.Form("kontaktperson") & "', mail = '" & Request.Form("mail") & "', organisation = '" & Request.Form("organisation") & "', adress = '" & Request.Form("adress") & "', postnummer = '" & Request.Form("postnummer") & "', postadress = '" & Request.Form("postadress") & "' WHERE ID = " & Request.Form("ID") 
response.write sql
Medlem sedan aug. 2001383 inlägg
#4

ok... ändrade så att jag kan se felmeddelandena.. viket blev:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/projekt/admin/updateproj.asp, line 8

Line 8 är db.Execute(SQL)

Skrev också ut SQL satsen och den ser helt ok ut... Det som står i formuläret kommer ut...

/Sven

Medlem sedan dec. 19998 577 inlägg
#5

Visa det som skrevs ut i SQL-satsen... det är ju där det är fel...

Medlem sedan feb. 20012 412 inlägg
#6

Hej!

text är ett reserverat ord. Testa skrina [text] med klammrar eller byta namn på fältet i db:n.

mvh Jörgen :)

Medlem sedan dec. 200012 464 inlägg
#7

Du har en kolumn som heter text. Det är ett reserverat ord i SQL så det är lämpligt att du byter ut det mot något annat. Annars kan du skriva
[text] i sql-koden.

Medlem sedan aug. 2001383 inlägg
#8

Utskriften av SQL satesen ser ut så här:
UPDATE om SET rubrik = 'Projektet', underrubrik = 'med klös', bakgrund = 'Som ni alla vet', text = 'Det låter så kul', kontaktperson = 'Greta Karlsson', mail = 'greta@hotmail.com', organisation = 'Föreningen', adress = 'Hemvägen1', postnummer = '123 45', postadress = 'Staden' WHERE ID = 1

Skall byta ut text till något bättre...

/Sven

Medlem sedan aug. 20013 824 inlägg
#9

prova
SQL = "UPDATE om SET rubrik = '" & Request.Form("rubrik") & "', underrubrik = '" & Request.Form("underrubrik") & "', bakgrund = '" & Request.Form("bakgrund") & "', [text] = '" & Request.Form("text") & "', kontaktperson = '" & Request.Form("kontaktperson") & "', mail = '" & Request.Form("mail") & "', organisation = '" & Request.Form("organisation") & "', adress = '" & Request.Form("adress") & "', postnummer = '" & Request.Form("postnummer") & "', postadress = '" & Request.Form("postadress") & "' WHERE ID = "& Request.Form("ID")
db.Execute(SQL)

vet inte om det kommer att funka men du kan ju prova i allafall.
/ Mikul

Medlem sedan aug. 2001383 inlägg
#10

Tackar alla...
Det var det där jämras reserverade ordet text som ställde till det.
Nu går den som en klocka igen....

251 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)