PDA

Ver la Versión Completa : porque no sirve este pequeño procedimiento??


Gaim2205
28-09-2007, 20:08:14
tengo este procedimiento para hacer login en mi tabla usuarios(campos nombre_usuario, passwd)


procedure TForm1.FormCreate(Sender: TObject);
var usuario, password, u2, p2 : string;
begin
repeat
usuario := InputBox('Login','Ingrese su nombre de usuario:','');
password := InputBox('Login','Ingrese su contraseña:','');
ds_login.DataSet.Locate('nombre_usuario',usuario,[]);
u2 := ds_login.DataSet.FieldByName('nombre_usuario').AsString;
p2 := ds_login.DataSet.FieldByName('passwd').AsString;
if (usuario <> u2) or (password <> p2) then
MessageDlg('Su nombre de usuario o contraseña son incorrectos',mtError, [mbok], 0);
until (usuario = u2) and (password = p2)
form1.Show;
end;


he probado varias formas de hacer lo mismo, y puse un par de showmessages y encontre que el error es que la comparacion nunca acepta los valores como iguales, aunque si lo sean.

eduarcol
28-09-2007, 20:30:26
Cuando dices que son iguales las mayusculas y minusculas tambien???

Gaim2205
28-09-2007, 20:32:04
si, todo identico

jhonny
28-09-2007, 20:36:58
si, todo identico

¿No sera que de la BD te trae algun espacio en blanco despues del password o el usuario?

Gaim2205
28-09-2007, 20:46:36
ooooh... gracias a que lo mencionaste recordé que en mi aplicacion de cualquier modo siempre he tenido que darle un trim cuando extraigo algun valor de una tabla. Ya funciona

gracias :)

jhonny
28-09-2007, 23:25:17
ooooh... gracias a que lo mencionaste recordé que en mi aplicacion de cualquier modo siempre he tenido que darle un trim cuando extraigo algun valor de una tabla. Ya funciona


Que bueno hombre :).