Hola radenf,
Primero que nada. Instrucciones exactas no puedo darte porque tu no nos has mencionado con que componentes (Aparte del ABSDataBase) y que motor de base de datos empleas (al parecer mySQL... pero por la forma en que está redactada tu oración da a entender que se trata de un ejemplo):
Cita:
|
Empezado por radenf
por lo que puede ser en código delphi o mysql
|
Bueno veamos. Damos por supuesto que el usuario ya accedió al sistema. Por lo que en algún lado conocemos su ID. Sin este supuesto no podríamos hacer los siguientes pasos para conseguir el efecto deseado:
1. Consultamos su password mediante un SQL. Por ejemplo:
Código SQL
[-]
select pass from tabla_user where ID = :paramIDUsuario
Siendo

aramIDUsuario un parámetro que se le suministra a la consulta SQL.
2. Verificamos que haya una consistencia. Es decir: que sólo y un solo resultado haya sido devuelto. SI existe UN solo registro hacemos:
3. Pedimos que ingrese su nombre de usuario, nueva password y que repita la password.
4. Realizamos la siguiente comprobación lógica para constatar de que lo ingresado sea correcto:
Código Delphi
[-](EditPasswordNueva.Text = EditRepitePassword.Text) AND (EditPasswordNueva.Text <> PasswordVieja) AND ((EditPasswordNueva.Text > '') AND (EditRepitePassword.Text > ''))
Siendo PasswordVieja alguna variable en donde se ha guardado el valor devuelto en la consulta.
Es decir que comprobamos que la password nueva haya sido ingresado correctamente dos veces y que además sea distinta a la vieja.
Si se pasa la prueba lógica se emite una sentencia SQL del tipo UPDATE asegurándonos de que cumpla la condición de ID.
Código SQL
[-]Update tabla_user ... where ID = :paramIDUsuario
En fin. Esa es la lógica. Como te dije... al no saber que motor emplear y que otros componentes usas no puedo darte un código que te funcione al 100%.
Con lo dicho por el amigo Caral y con esto creería que ya tienes para trabajar.
Saludos,