webForumDet fria alternativet

UPDATE med SQL?

2 svar · 132 visningar · startad av Hulth

HulthMedlem sedan juni 2001272 inlägg
#1

Jag har problem med min sql-sträng.. den fungerar inte som den ska...

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & default_database
	Set RecSet = Server.CreateObject("ADODB.RecordSet")

	If action = "edit" Then
	vad = Request.Querystring("vad")

	edita = "SELECT * FROM texter WHERE ID = " & vad
	RecSet.Open edita, Connect, AdOpenStatic

	Response.Write "<br>"

	If Not RecSet("misc2") = "" Then
		Response.Write "<font face=""verdana"" size=""2"" color=""#FF0000"">Meddelande från personen som ändrade texten senast:<br></font><font face=""verdana"" size=""2"" color=""#000000"">" & RecSet("misc2") & "</font><br><br><br>"
	End If

	Response.Write "<font face=""Verdana"" size=""2"">Du har valt att ändra texterna för " & RecSet("p_namn") & " med id-numret " & RecSet("ID")
	Response.Write "<form action=""index.asp?meny=edit&visa=edit&action=save&vadfil=" & RecSet("ID") & """ method=""post"">"
	Response.Write "Texten som ska visas:<br><textarea name=""text"" rows=""10"" cols=""60"" wrap=""no"">" & RecSet("text") & "</textarea><br><br>"
	Response.Write "Övrig text 1 (kommer under den ovanstående text):<br><textarea name=""misc1"" rows=""10"" cols=""60"" wrap=""no"">" & RecSet("misc1") & "</textarea><br><br>"
	Response.Write "Övrig text 2 (visas bara för nästa som ändrar denna texten):<br><textarea name=""misc2"" rows=""10"" cols=""60"" wrap=""no"">" & RecSet("misc2") & "</textarea><br><br>"
	Response.Write "<table align=""center"" border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%"">"
	Response.Write "<tr><td><font face=""Verdana"" size=""2"">Namnet på sidan som ska visas för andra:</font></td><td><input type=""text"" name=""p_namn"" value=""" & RecSet("p_namn") & """></td></tr>"
	Response.Write "<tr><td><font face=""Verdana"" size=""2"">Ditt namn <font size=""1"">(visas under en text där det står ""Senast ändrad idag av ****"")</font>:</font></td><td><input type=""text"" name=""person"" value=""" & RecSet("person") & """></td></tr>"
	Response.Write "<tr><td><font face=""Verdana"" size=""2"">Datum för senaste redigering:</font></td><td><input type=""text"" name=""now"" value=""" & date & """></td></tr>"
	Response.Write "<tr><td><br></td><td><br></td></tr>"
	Response.Write "<tr><td align=""right""><input type=""submit"" value=""Lagra text!""></td><td><input type=""reset"" value=""Nollställ""></td></tr>"
	Response.Write "</table>"
	Response.Write "</form>"
	RecSet.Close
	End If 

	If action = "save" Then
	vadfil = Request.Querystring("vadfil")

	spara = "SELECT * FROM texter WHERE ID = " & vadfil
	RecSet.Open spara, Connect, AdOpenDynamic

	strSQL = "UPDATE texter SET text = '" & Request.Form("text") & "', misc1 = '" & Request.Form("misc1") & "', misc2 = '" & Request.Form("misc2") & "', p_namn = '" & Request.Form("p_namn") & "', person = '" & Request.Form("person") & "', now = '" & Request.Form("now") & "' WHERE ID = " & vadfil
	Connect.execute strSQL,,128 	

	Response.Write "<font face=""Verdana"" size=""2"">Texten har ändrats...<br><a href=""index.asp?meny=edit&visa=edit_main"">Tillbaka...</a></font>"
	End If
End If

jag får följande fel:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i UPDATE-uttryck.
/admin/index.asp, line 129

Rad 129 är följande: Connect.execute strSQL,,128

fast det är ju inget fel i den raden utan jag misstänker att felet ligger i strängen ovanför..

Någon?

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Problemet beror på att du har text som kolumnnamn. Eftersom det är ett reserverat ord i Access så blir det problem. Det bästa är om du kan döpa om kolumnen till något annat, annars så får du skriva

strSQL = "UPDATE texter SET [text] = '" & ...
HulthMedlem sedan juni 2001272 inlägg
#3

tack för hjälpen lars.. (ytterligare en anledning till att jag röstade på dig.. ;))

nu får jag iofs ett fel om att ett fält inte får vara tomt men det vet jag hur man fixar..

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)