Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Comparar edit con campo de mi tabla (https://www.clubdelphi.com/foros/showthread.php?t=23131)

el_barto 07-07-2005 17:24:31

Comparar edit con campo de mi tabla
 
Buenos dias foro:

Tengo un inconveniente, tengo una tabla que se llama usuarios y tiene los atributos cod_usuario, username, password.
en mi form1 tengo un edit1 y un edit2 en donde en el edit1 pido el username y en el edit2 pido el password, como hago para comparar los edit con los campo username y password de mi tabla usuarios???
Que componente debo usar?? un dataset, ibtable, ibquery???

Gracias por la ayuda que me puedan prestarrrr

delphi.com.ar 07-07-2005 17:26:35

Yo utilizaría un TQuery o descendente, y haría una consulta filtrada por tus datos, si no retorna ningún registro, los datos son inválidos!

Saludos!

el_barto 07-07-2005 17:41:54

Gracias Fede, pero no entiendo que quieres decir con una consulta filtrada?? hay que poner la propiedad filtered en true y mediante codigo delphi hacer:

Código Delphi [-]
 
IBQuey.Sql.Text := 'select * from usuarios where username =' + Quotedstr (Edit1.text) + 'and password =' + Quotedstr (Edit2.text);

delphi.com.ar 07-07-2005 17:47:14

No... simplemente lo que hace tu código!

Posiblemente la expresión no este del todo bien, me refería a que filtres tu tabla usando Sql ;)

Saludos!

el_barto 07-07-2005 17:48:59

Gracias Fede, oye y hasta que Argentina a trastes gano la sub20 no?? bueno en gran medida se lo merecian.

Chao

el_barto 07-07-2005 17:57:26

Ahhh pero Fede una pregunta despues de que haga el select como valido si existe el usuario es decir si yo escribo en el edit1 es decir en el edit del user "el_barto" y "el_barto" no esta en la base de datos como hago para sacar el mensaje de error, eso es lo que no me queda claro

Gracias y perdon la incomodidad

delphi.com.ar 07-07-2005 18:01:32

Por otro lado te recomiendo utilizar Parámetros en lugar de armar el string del SQL, a fin de evitarle trabajo a tu servidor: http://www.clubdelphi.com/foros/showthread.php?t=12305

Cita:

Empezado por el_barto
hasta que Argentina a trastes gano la sub20

¿Y que significa eso?

delphi.com.ar 07-07-2005 18:03:16

Cita:

Empezado por el_barto
Ahhh pero Fede una pregunta despues de que haga el select como valido si existe el usuario es decir si yo escribo en el edit1 es decir en el edit del user "el_barto" y "el_barto" no esta en la base de datos como hago para sacar el mensaje de error, eso es lo que no me queda claro

Simplemente preguntando:
Código Delphi [-]
if IBQuey.IsEmpty then
  raise Exception.Create('Usuario o contraseña inválido');

el_barto 07-07-2005 18:09:53

Que la tuvo muy dificil pasar de una ronda a otra por ejemplo en la primera ronda perdio con USA y eso dejo mucho que pensar de la seleccion Argentina, en la segunda ronda en el ultimo minuto le gano a Colombia con España fue un buen partido diria yo un partidazo con Brasil la tuvieron dura, con Nigeria tuvieron fortuna y un buen arquero y los penaltis fue la formula para marcar.
Argentina llevo los mejores jugadores a nivel suramericano pasando por encima a Brasil y al campeon suramericano Colombia, y pienso yo que no era ni para perder con USA ni para sufrir tanto en el resto del campeonato.

Ahh y gracias por la ayuda estuvo FULL

el_barto 07-07-2005 20:44:48

Seguir mostrando la misma Form
 
Hola Fede mira como deje el codigo y funciona muy bien pero lo que no se como hacer es que para cuando entra por el IF me siga mostrando la form3

Código Delphi [-]
IBQuery1.SQL.Clear;
   IBQuery1.Close;
   IBQuery1.Sql.Text := 'select * from usuarios where user_name =' + Quotedstr (Edit1.text) + 'and user_pass =' + Quotedstr (Edit2.text);
   IBQuery1.Open;
   IBQuery1.Active:=True;
  if IBQuery1.IsEmpty then
     raise Exception.Create('Usuario o contraseña inválido')
  else begin
     MessageDlg ('SU USER O PASSWORD es correcto', mtWarning,[mbyes],0)

delphi.com.ar 07-07-2005 20:52:42

Cita:

Empezado por el_barto
no se como hacer es que para cuando entra por el IF me siga mostrando la form3

¿Y cuál es esta form3?

el_barto 07-07-2005 21:17:29

el form3 es donde se pide el usuario y la contraseña es decir el form en donde se desarrolla el logueo, lo que quiero es que me siga llamando este form, por que en el project1 libero esta form asi:

Código Delphi [-]
begin
  Application.Initialize;
  Application.CreateForm(TDataModule2, DataModule2);
  DataModule2.IBDatabase1.Params.Values['USER_NAME'] := 'sysdba';
   DataModule2.IBDatabase1.Params.Values['PASSWORD']  := 'masterkey';
   DataModule2.IBDatabase1.open;
   DataModule2.IBTransaction1.Active := True;
   DataModule2.IBDataSet1.Active := True;
  Application.CreateForm(TForm3, Form3);
  if form3.showmodal = mrok then
  begin
    form3.Free;
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm4, Form4);
    Application.CreateForm(TForm5, Form5);
    Application.CreateForm(TForm6, Form6);
    Application.Run;
  end;
end.

El problema es que si el user esta mal me muestra el mensaje de error pero me deja pasar al menu principal, lo que deseo es que en el codigo anterior cuando entre por el IF me siga llamando esta misma form3

delphi.com.ar 07-07-2005 21:27:45

Todo depende dónde pongas el código que te he pasado, no tienes que dejar que se ejecute un ModalResult = mrOk, ya sea por código o por la propiedad de algún botón o similar.

el_barto 07-07-2005 22:54:12

Puessss ahora si que quede confundido.....
Código Delphi [-]
 
if form3.showmodal = mrok then
  begin
    form3.Free;
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm4, Form4);
    Application.CreateForm(TForm5, Form5);
    Application.CreateForm(TForm6, Form6);
    Application.Run;
  end;

es la primera vez que trabajo con esto y estoy algo perdido y para serte sincero ya recorre en mi la deseperacion dado que no se como hacer para que showmodal sea distinto a mrok y no ingrese a este IF

delphi.com.ar 07-07-2005 23:07:14

Los formularios modales se cierran automáticamente cuando cambia el ModalResult del mismo, este ModalResult es el resultado del método que has llamado: ShowModal.
Hay dos formas de cambiar este modal result, como Delphi es un verdadero RAD, te permite hacerlo visualente, asignando la propiedad ModalResult de algunos componentes como los TButton. Entonces cuando alguien hace click en ese TButton si no se produce un error en la ejecución del evento, este botón le asignara su ModalResult al formulario automáticamente. Si el botón "Aceptar" de tu loguin tiene ModalResult = mrOk, simplemente en su código podría ser el que escribiste anteriormente, si este botón no tiene ModalResult, simplemente cuando la evaluación del usuario es correcta, podrías asignarselo al Form:
Código Delphi [-]
  ...
  if IBQuery1.IsEmpty then
     raise Exception.Create('Usuario o contraseña inválido')
  else 
     ModalResult := mrOk;


Saludos!

el_barto 07-07-2005 23:23:18

hayyyyyy Fede yo partiendome la cabeza y lo que pasaba es que el ModalResult de mi boton estaba en MrOK y por eso siempre me dejaba entrarrrrrr, gracias fede y Felicidades, cuando vaya a argentina te invito una cerveza Quilmes que es una de mis preferidas o si hay algo mas fuertecito pues no lo tomamos


La franja horaria es GMT +2. Ahora son las 16:30:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi