como regresar a la pantalla de login personalizada al tener un error dbexpress
saludos uso dbexpress en delphi 7 y mysql 5.0 de los cual tengo una forma personalizada para ingresar al sistema, la cuestion es como le puedo hacer cuando un usuario se equivoque en el usuario o en el password y le de un error y le regrese a la misma pantalla para ingresarlos, ya que el siguiente codigo expuesto me da un error del odbc con el usuario que quise entrar, y al dar aceptar, me deja entrar a la pantalla principal, aunque no se conecte pero eso seria fatal.
creo que si hay un error lo mejor es que se cierre completamente con el application.terminate o bien volver a la pantalla de acceso. Código PHP:
|
No he usado mucho DbExpress pero:
1) Que error te da? 2) Que valor tiene ^M? (curiosidad) 3) Cuando activas la conección (SQLConnection)? 4) Para cerrar aplicacion FormPrincial.Close; Saludos |
Creo que sería bueno utilizar la metodología normal de excepciones:
- Tal y como haces, controlar la excepción, mostrar el mensaje y despues, en lugar de Application.Terminate, escribe "raise;", Esto hará que se levante la excepción producida de nuevo. - Añade un ApplicationsEvents en tu forma principal, y en el evento OnException, vuelve a controlar ese error. Ahora en ese evento si puedes cerrar todas las ventanas que tengas y lanzar el login. Podrías pensar... pues que lio, simplemente en el try.. except que tengo ahora cierro la ventana y muestro el login... pero tardarás 2 segundos en darte cuenta que en ese mismo try ... except necesitas hacer comprobaciones que requieren añadir otros "uses", necesitas variables que estan en otro sitio y puede que mucho más. Saludos y espero te sirva. |
Bueno, puedes intentar modificar el codigo de la ventana donde solicitas el nombre de usuario y contraseña, supongo que tienes mas o menos algo parecido a lo que se muestra abajo.
Se agrega una variable privada en la forma y una constante en la implementacion con las cuales se lleva la cuenta de cuantas veces se intenta el acceso, si se llega al numero maximo se termina la aplicación, asi como si le das click al boton cancelar.
|
La franja horaria es GMT +2. Ahora son las 05:25:56. |
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