-
Det skall inte vara något komma innan where
-
Password är tydligen ett reserverat ord i Access. Du kan antingen döpa om kolumnen eller så ange den som [password]
------------------
essentitia preter non sans multiplicandum
13 svar · 197 visningar · startad av Pace
Vad är fel i följande sql-sats (>> "Syntax error in UPDATE statement.")
SQL = "UPDATE Users SET username='" & Request.Form("username") & "', "
SQL = SQL & " password='" & Request.Form("password") & "', "
SQL = SQL & " name='" & Request.Form("name") & "', "
SQL = SQL & " initials='" & Request.Form("initials") & "', "
SQL = SQL & " email='" & Request.Form("email") & "', "
SQL = SQL & " WHERE id=" & id
Jag har liiite svårigheter att hålla reda på alla tecken. Finns det inte program för sånt?
------------------
Peter D
Det skall inte vara något komma innan where
Password är tydligen ett reserverat ord i Access. Du kan antingen döpa om kolumnen eller så ange den som [password]
------------------
essentitia preter non sans multiplicandum
Det skall inte vara något komma innan where
Var ska det annars vara? :)
Password är tydligen ett reserverat ord i Access.
Nej, det funkade tidigare, så det är inga problem.
------------------
Peter D
Var ska det annars vara?
det ska alltså inte vara ett komma precis innan where.
ta bort det sista kommat före where bara.
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>
Aha, det kommat! (såg jag inte ens... he he)
Fast nu har jag ett annat problem:
The operation requested by the application is not supported by the provider.
Kan man inte köra update på pws eller vadå? :q
------------------
Peter D
Precis som ovan LarsG, fast nu med version 2.0 tilläggspaket med uppgradering - dvs utan komma!
SQL = "UPDATE Users SET username='" & Request.Form("username") & "', "
SQL = SQL & " password='" & Request.Form("password") & "', "
SQL = SQL & " name='" & Request.Form("name") & "', "
SQL = SQL & " initials='" & Request.Form("initials") & "', "
SQL = SQL & " email='" & Request.Form("email") & "'"
SQL = SQL & " WHERE id=" & id
------------------
Peter D
Det var inte det jag menade. Det jag tänkte på var de ADO-anrop du gör, dvs execute eller hur det nu ser ut (+ lite kod omkring).
------------------
essentitia preter non sans multiplicandum
Okej, my misstake ;)
Här kommer koden:
databasFil = "login.mdb"
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath(databasFil)
Set rs = Server.CreateObject("ADODB.Recordset")
...
SQL = "UPDATE Users SET username='" & Request.Form("username") & "', "
SQL = SQL & " password='" & Request.Form("password") & "', "
SQL = SQL & " name='" & Request.Form("name") & "', "
SQL = SQL & " initials='" & Request.Form("initials") & "', "
SQL = SQL & " email='" & Request.Form("email") & "'"
SQL = SQL & " WHERE id=" & id
Connect.Execute(SQL)
rs.Update
rs.Close
%>
------------------
Peter D
ta bort nedan fetmarkerade rader, de skall inte vara där:
[b]Set rs = Server.CreateObject("ADODB.Recordset")[/b]
...
SQL = "UPDATE Users SET username='" & Request.Form("username") & "', "
SQL = SQL & " password='" & Request.Form("password") & "', "
SQL = SQL & " name='" & Request.Form("name") & "', "
SQL = SQL & " initials='" & Request.Form("initials") & "', "
SQL = SQL & " email='" & Request.Form("email") & "'"
SQL = SQL & " WHERE id=" & id
Connect.Execute(SQL)
[b]rs.Update
rs.Close[/b]
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>
Tackar!
Så följande
Set rs = Connect.Execute(SQL)
Gör skapar alltså ett recordset utan Set rs = Server.CreateObject("ADODB.Recordset")?
:q
------------------
Peter D
Set rs = Connect.Execute(SQL)
Ja det skapaas ett recordset vars egenskaper man inte kan ändra. Dvs, om man bara vill hämta data är det onödigt att först skapa ett recordset med server.createobjec.
------------------
essentitia preter non sans multiplicandum
Men kör du bara en update så skall du inte köra en set, det är bara när du hämtar data som du behöver skapa ett recordset (antingen via execute eller manuelt skapande av detta), så du behöver bara exekvera såhär:
Connect.Execute(SQL)
------------------
Vide rox = new Vide();
rox.learn("C#");
webeye.nu
Vill Du inte skriva koden själv så kan du testa denna kodgenerator http://www.able-consulting.com/ecodegen/
Har inte hunnit testa den ännu på riktigt men det ser bra ut när koden kommer ut.