
El objetivo del código es permitir el cambio de contraseña de un usuario, os coloco aquí el código en cuestión:
<%
'Antes de nada hay que instanciar el objeto Connection
dim Conn
set Conn =Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = MM_Tablon_Virtual_STRING
Conn.Open
Dim bool
bool=false
Dim estado
estado=false
nick_entrado=Session("Nick_Activo")
pass_entrado=Request.Form("viejo_pass")
pass1=Request.Form("nuevo_pass1")
pass2=Request.Form("nuevo_pass2")
IF Request.Form("Modificar")<>"" THEN
' Si ha habido una peticion del formulario
sSQL="Select * From Persona"
set RS = Conn.Execute(sSQL)
Do While Not RS.Eof
IF RS("Nick")=nick_entrado AND RS("Passw")=pass_entrado THEN
estado=true
END IF
Rs.MoveNext
Loop
RS.Close
Set RS = Nothing
IF estado=true THEN
'Hemos verificado que el usuario es correcto, verifiquemos contraseñas
IF pass1=pass2 THEN
'Las contraseñas coinciden, actualizemos pues
ComandoSQL="UPDATE FROM PERSONA SET Passw='"& pass_entrado & "' WHEN NICK='"& nick_entrado & "'"
Set RS3=Conn.Execute(ComandoSQL)
RS3.Close
RS3=Nothing
bool=true
END IF
END IF
END IF
%>
Quizás pueda parecer un poco enrevesado, soy nuevo en esto y es posible que complique el código. El error que recibo es el siguiente:
Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis en la instrucción UPDATE.
/sitio/pass.asp, línea 43
He estado buscando en internet y he cambiado el campo Password por Passw, ya que me he enterado de que password era una palabra reservada. Con toda la ilusión pensé que eso solucionaría el problema pero no ha sido así. Tengo otras sentencias SQL muy parecidas y resultan bien. Puede tener algo que ver con que el campo identificador sea el Nick?
Gracias, y perdonad las molestias.
Ricard.
