J jns Medlem sedan dec. 2001 132 inlägg Frågan 19 feb. 2005 17:02 #1 Antagligen är det ett väldigt enkelt fel, men hur mycket jag än
söker lyckas jag inte hitta nått.
felkod:
Microsoft JET Database Engine (0x80040E14)
Syntax error in UPDATE statement.
/admin/users.asp, line 20
Kod:
<%
if request.querystring("funk") = "bytpass" THEN
nypass = request.form("newpass")
prevpass = request.form("prevpass")
updatera = "UPDATE login SET Password = " & nypass & " WHERE Password = " & prevpass & " AND ID = " & loginID
set mincon =Server.CreateObject("ADODB.Connection")
set rs = server.createobject("ADODB.Recordset")
mincon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\jeha\ukm\db\main.mdb")
Set rs = mincon.Execute(updatera)
If rs.EOF Then
rs.Close
Set rs = Nothing
mincon.Close
Set mincon = Nothing
Session("username") = ""
Session("password") = ""
Session.Abandon
Response.Redirect("login.asp?status=denied")
ELSE
Session("username") = loginnamn
Session("password") = newpass
response.redirect("huvud.asp")
end if
end if
%>
Rad 20 är alltså: Set rs = mincon.Execute(updatera)
Tack på förhand
L LarsG Medlem sedan dec. 2000 12 464 inlägg Byt namn på kolumnenn password.
Lägg till apostrofer
nypass = "'" & replace(request.form("newpass"),"'","''") & "'"
prevpass = "'" & replace(request.form("prevpass"),"'","''") & "'"
updatera = "UPDATE login SET assword = " & nypass & " WHERE assword = " & prevpass & " AND ID = " & loginID
J jns Medlem sedan dec. 2001 132 inlägg varför måste man göra så?
Funkar fortfarande ej...
nypass = "'" & replace(request.form("newpass"),"'","''") & "'"
prevpass = "'" & replace(request.form("prevpass"),"'","''") & "'"
updatera = "UPDATE login SET Password = " & nypass & " WHERE Password = " & prevpass & " AND ID = " & loginID
och samma felmeddelande
L LarsG Medlem sedan dec. 2000 12 464 inlägg Repeat after me once more
Byt namn på kolumnen password.
J jns Medlem sedan dec. 2001 132 inlägg ok, funkar bättre, posten läggs in men jag har visst klantat mig på ett till ställe:
ADODB.Recordset (0x800A0E78)
Operation is not allowed when the object is closed.
admin/users.asp, line 21
Kod
<%
if request.querystring("funk") = "bytpass" THEN
nypass = "'" & replace(request.form("newpass"),"'","''") & "'"
prevpass = "'" & replace(request.form("prevpass"),"'","''") & "'"
updatera = "UPDATE login SET pwd = " & nypass & " WHERE pwd = " & prevpass & " AND ID = " & loginID
set mincon =Server.CreateObject("ADODB.Connection")
set rs = server.createobject("ADODB.Recordset")
mincon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db\main.mdb")
Set rs = mincon.Execute(updatera)
If rs.EOF Then
mincon.Close
Set mincon = Nothing
rs.Close
Set rs = Nothing
Session("username") = ""
Session("password") = ""
Session.Abandon
Response.Redirect("login.asp?status=denied")
ELSE
Session("username") = loginnamn
Session("password") = newpass
response.redirect("huvud.asp")
end if
end if
%>
rad 21 är If rs.EOF Then
L LarsG Medlem sedan dec. 2000 12 464 inlägg En update returnerar aldrig någon post så det finns ingen anledning att använda ett recordset.
mincon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db\main.mdb")
mincon.Execute updatera,affectedRows,128
mincon.Close
Set mincon = Nothing
If affectedRows = 0 Then
Session("username") = ""
Session("password") = ""
Session.Abandon
Response.Redirect "login.asp?status=denied"
ELSE
Session("username") = loginnamn
Session("password") = newpass
response.redirect "huvud.asp"
end if
end if
@nders Medlem sedan juni 2000 32 967 inlägg En updatefråga genererar inget svar, så det är onödigt att skapa ett recordset. Jag vet inte riktigt vad du försöker göra med koden, men kanske är det det här du menar?
<%
if request.querystring("funk") = "bytpass" THEN
nypass = "'" & replace(request.form("newpass"),"'","''") & "'"
prevpass = "'" & replace(request.form("prevpass"),"'","''") & "'"
updatera = "UPDATE login SET pwd = " & nypass & " WHERE pwd = " & prevpass & " AND ID = " & loginID
set mincon =Server.CreateObject("ADODB.Connection")
mincon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db\main.mdb")
mincon.execute updatera,rowsaffected,128
mincon.Close
Set mincon = Nothing
if rowsaffected = 0 then
Session("username") = ""
Session("password") = ""
Session.Abandon
Response.Redirect("login.asp?status=denied")
ELSE
Session("username") = loginnamn
Session("password") = newpass
response.redirect("huvud.asp")
end if
end if
%>
mvh
J jns Medlem sedan dec. 2001 132 inlägg ok, kände inte till rowsaffect, men nu vet jag.
Tack iallafall!
<%
if request.querystring("funk") = "bytpass" THEN
nypass = "'" & replace(request.form("newpass"),"'","''") & "'"
prevpass = "'" & replace(request.form("prevpass"),"'","''") & "'"
updatera = "UPDATE login SET pwd = " & nypass & " WHERE pwd = " & prevpass & " AND ID = " & loginID
set mincon =Server.CreateObject("ADODB.Connection")
mincon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db\main.mdb")
mincon.execute updatera,rowsaffected,128
mincon.Close
Set mincon = Nothing
if rowsaffected = 0 then
[B]Session("username") = ""
Session("password") = ""[/B]
Session.Abandon
Response.Redirect("login.asp?status=denied")
ELSE
Session("username") = loginnamn
Session("password") = newpass
response.redirect("huvud.asp")
end if
end if
%>
Är inte den tjocka texten onödig? :P
@nders Medlem sedan juni 2000 32 967 inlägg
Holmstroem skrev:
Är inte den tjocka texten onödig? :P
Jo, egentligen. Vad menar du för övrigt med din :P-smiley?