jnsMedlem sedan dec. 2001132 inlägg 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
LarsGMedlem sedan dec. 200012 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
jnsMedlem sedan dec. 2001132 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
LarsGMedlem sedan dec. 200012 464 inlägg Repeat after me once more
Byt namn på kolumnen password.
jnsMedlem sedan dec. 2001132 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
LarsGMedlem sedan dec. 200012 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
@ndersMedlem sedan juni 200032 969 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
jnsMedlem sedan dec. 2001132 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
@ndersMedlem sedan juni 200032 969 inlägg
Holmstroem skrev:
Är inte den tjocka texten onödig? :P
Jo, egentligen. Vad menar du för övrigt med din :P-smiley?