Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Lightbulb 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
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #2  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
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);
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #4  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Gracias Fede, oye y hasta que Argentina a trastes gano la sub20 no?? bueno en gran medida se lo merecian.

Chao
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #6  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
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
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #7  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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');
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #9  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
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
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #10  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Talking 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)
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #11  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #12  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Talking

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
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #13  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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.
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #14  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
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
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #15  
Antiguo 07-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #16  
Antiguo 07-07-2005
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
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
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:48:38.


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
Copyright 1996-2007 Club Delphi