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 15-09-2007
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Error en Login. ¿como lo capturo y lanzo la excepcion?

Hola a todos/as.

Vaya por delante que trabajo con interbase 6 y delphi 7.
Estoy intentando construir un formulario de entrada a la aplicacion. En el mismo pongo un combobox con todos los usuarios de la base de datos y debajo un Edit para introducir el password. No se como capturar la excepcion que se produce cuando el usuario se equivoca en la password. Estoy intentando el siguiente codigo pero me falla.
Código Delphi [-]
procedure TAcceso_Programa.BitBtn1Click(Sender: TObject);
begin
BitBtn1.Cursor:=crHourGlass;
BitBtn1.Enabled:=False;
with DM.IBDB do
 begin
   Connected:=False;
   LoginPrompt:=False;
   DataBaseName:='Nombre_Aplicacion.GDB';
   Params.Values['user_name']:=ComboBox1.Text;
   Params.Values['password']:=Edit1.Text;
   try
    Connected:=True;
    Form1.Show; //este es el formulario principal de la aplicacion
   except
    on ELoginFailed do ShowMessage('Contraseña incorrecta.');
   end;
 end;
Close;
end;

¿Alguien me puede echar un cable?
Responder Con Cita
  #2  
Antiguo 15-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Tal vez la clase de error no sea "EloginFailed"...

prueba utilizar:
Código Delphi [-]
try
 Connected:=True;
 Form1.Show; //este es el formulario principal de la aplicacion
except on E:Exception do 
     ShowMessage(E.ClassName+ ' - '+ inttostr(E.ErrorCode)+' - '+E.Message);
end;

Esto para ver la clase del error y posiblemente ver el número de error, para poder capturar específicamente ese error.
__________________

Responder Con Cita
  #3  
Antiguo 15-09-2007
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Ese codigo me da error

El error surge por ErrorCode.
De todas formas, una vez que vea que tipo de error da ¿como capturo la excepcion?

Gracias.
Responder Con Cita
  #4  
Antiguo 16-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
cuando tengamos los datos qe te devuelve ese codigo te podremos explicar como capturarlo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 16-09-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Perdón por la ignorancia.
A mi manera de ver tienes:
1 datamodule que contiene un IBDatabase (IBDB)
Si es asi, por que no hacer la conexión en el datamodule, al empezar la aplicación, por que variar los parámetros en el que seria el form del loguin.
Perdona, pero no lo entiendo, creo que complicas el proceso innecesariamente.
Para mi el form del login solamente debería de indicar la condición, verdadero o falso, en el caso de que sea el usuario correcto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 18-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por gorsan Ver Mensaje
El error surge por ErrorCode.
De todas formas, una vez que vea que tipo de error da ¿como capturo la excepcion?

Gracias.
Pues la capturas igual, a lo que yo me refería es que tal vez la excepción que te envía, no es de la clase "ELoginFailed", tal vez sea de la clase "EDBEngineError". Pero para estar seguros, por eso propuse que primero verificaras que la clase es la correcta.

Una vez que estés seguro de la clase de error que te envía, pues ya solo capturas esa clase...

Incluso (aunque no muy recomendable), podrías manejar "E:Exception" para capturar cualquier tipo de error. El problema con capturar todos los errores, es que no sabrías ni que clase es, ni que tipo de error. Alguna vez alguien dijo: "bien pudo haber caído una bomba nuclear y el mensaje de error sería el mismo.

En fin, primero asegúrate que la clase realmente sea "ELoginFailed".
__________________

Responder Con Cita
  #7  
Antiguo 18-09-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
que rara manera de hacer un login

y por que no tienes todos los usuarios con sus respectivas password en un datasource y lo buscas cuando éste usuario presiona aceptar y comparas
dichas password?

O bien que el combo sea un dbLockupCombobox de manera que ya sabés quien es el usuario y un text donde ingrese su password.
algo así

Código:
if tblUsers.FieldByName('Password').Value = txtPassword.Text
begin
   fMain.Show;
end
else
begin
    ShowMessage('Password Incorrecta. Reingrese la misma');
end;
donde tblUsers es la tabla donde estan todos los datos de los usuarios.

Saludos y espero te sirva de algo. Consideralo, ya que si ingresa mal su password no es un error, o al menos
no deberías generar un error, simplemente le pides que reingrese.
Responder Con Cita
  #8  
Antiguo 18-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Es que según entiendo, este no se trata de que "un usuario" entre al sistema.

Se trata de que el sistema se conecte a la base de datos. Si el sistema no se conecta a la base de datos, no puedes usar dblookupcombobox, o compara la tabla usuario ni nada.

Al menos eso es lo que yo entendí.
__________________

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como capturo una Except en particular? danytorres Varios 7 26-07-2008 18:08:06
como regresar a la pantalla de login personalizada al tener un error dbexpress Arturo Conexión con bases de datos 3 19-08-2006 20:46:32
Como capturo el tamaño de un directorio JOSE NARANJO API de Windows 9 30-11-2005 17:47:33
Como capturo columna y fila pruz Varios 1 18-08-2005 14:53:30
como capturo error redlyon13 Varios 3 05-06-2004 06:24:04


La franja horaria es GMT +2. Ahora son las 08:01:07.


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