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)
-   -   ALGUIEN ME AYUDA CON EDBEngineError (https://www.clubdelphi.com/foros/showthread.php?t=7498)

ronson 17-02-2004 11:41:24

Formualario De Conexion
 
Hola Amigos Estoy Haciendo Una Mdiaplicacioin, Mi Primera Ventana Contines Aparte De La Principal Un Formulario PequeÑo Para Pedir Usuario Y Password Para Entrar A La Base De Datos.

Como Puedo Hacer Que Este Me Valga Para Conectarme A La Bease De Datos Durante Toda La Aplicacion?.

Saludos!!

Gydba 17-02-2004 12:37:43

Primero no indicas bien que tipo de BD tenés ni que componentes utilizás para conectarte. Sin embargo la respuesta podría ser declarar dos variables públicas y globales que te mantengan el usuario y la contraseña mientras dure tu app. de esta forma las completas con un form de login y podés utilizarla en cualquier momento.

Las preguntas demasiado generales tienen respuestas demasiado generales :)

ronson 17-02-2004 19:11:46

tienes razon,EXCEPCIONES
 
Hola amigo tienes mucha razon, las prisas han hecho que me expresara malamente. Mira te explico mas detalladamente, resulta que estoy haciendo un formulario de entrada para que me valide los usuarios en la base de datos, que bien cabe decir que es un SGBD FIREBIRD.
Bien la razon de mi pregunta no es saber como se hace, es facil, mi razon es que no se como controlar las excepciones que me tira la base de datos, mira tengo este codigo:

MAinForm.DBGlobal.Params.Values['USERNAME'] := txtNombre.Text;
MAinForm.DBGlobal.Params.Values['PASSWORD'] := txtPassword.Text;
conexion.Visible:=false;

try
MAinForm.DBGlobal.Open;
except
ShowMessage('Error abriendo la base de datos: cerrando aplicación');
Application.Terminate;
end;


pues resulta que cuando meto un nombre y un password que no estan en la base de datos el ODBC me tira una exception pero con el codigo que tengo aqui no consigo capturarlo para que no se aborte el programa.


SALUDOS.

__cadetill 17-02-2004 19:22:25

Cita:

Empezado por ronson
pues resulta que cuando meto un nombre y un password que no estan en la base de datos el ODBC me tira una exception pero con el codigo que tengo aqui no consigo capturarlo para que no se aborte el programa.

Pero si tu mismo le dices que aborte!!!

Cita:

Empezado por ronson
Código:

  try
    MAinForm.DBGlobal.Open;
  except
    ShowMessage('Error abriendo la base de datos: cerrando aplicación');
    Application.Terminate;
  end;



ronson 17-02-2004 19:37:15

Da Un Error Y No Se Acaba La Aplicacion
 
A ver, cuando se produce el erro EDBEngineError no se acaba la aplicacion y santas pascuas sino que da un error sale otra ventana con un icono rojo diciendome que el ODBC ha generado una exception de ese tipo y que se me va a cerrar la aplicacion, pero no me hace caso del mensaje uqe digo que salgqa por pantalla, es mas si le quito el Aplication.terminate sigue haciendo lo mismo.

He probado con

try

...

except

E: EDBEngineError on



pero no me funciona dice que EDBEngineError no esta decxlarada:



:)

ronson 17-02-2004 20:03:29

ALGUIEN ME AYUDA CON EDBEngineError
 
ESTOY ATASCADISIMO POR QUE ME HE IMPLEMENTADO UN FORMULARIO PARA LOGEARME EN UNA BASE DE DATOS Y RESULTA QUE TODO FUNCIONA AL PELO MENOS CUANDO METO UN NOMBRE O UN PASSWOORD QUE NO EXISTE EN LA BASE DE DATOS, ME DA UN ERROR

EDBEngineError INTENTO COGERLO Y NO ME FUNCIONA:

try
MAinForm.DBGlobal.Open;
except
on E: EDBEngineError do
ShowMessage('Error abriendo la base de datos: cerrando aplicación');


end;


QUE ES LO QUE ESTOY HACIENDO MAL?

TAMBIEN HE PROBADO CON:

try
MAinForm.DBGlobal.Open;
except
ShowMessage('Error abriendo la base de datos: cerrando aplicación');

end;

y tampoco me funciona.

SALUDOS!!

__cadetill 17-02-2004 20:24:37

Primero de todo, recomendarte la lectura de la guía de estilos (ver firma). En ella verás que se dice que no se ha de preguntar en hilos diferentes la misma cosa. Si tu tienes abierto este hilo con tu problema, no lo preguntes en otros hilos de otros compañeros ni abras de nuevos, ya se te responderá aquí si alguien lo sabe.

Por otra parte, qué significa que no te funciona? Estás ejecutando desde dentro del IDE o desde fuera?

ronson 17-02-2004 20:29:12

Lo Siento Soy Nuevo
 
Lo siento es que soy nuevo en el tema, estoy ejecutandolo desde el entorno de programacion DELPHI, es normal entonces que me de el error?, si sigo depurando entonces si que continua la ejecucion del programa pero sino no.

Estoy volviendome loco tio, me gustaria que ignorara el error y simplemente no hiciera nada, si el usuario o el password no es valido que lo ignorara y ya esta.

MUCHAS GRACIAS Y LO SIENTO.

ronson 17-02-2004 20:31:42

Mira La Imgen
 
Esto es lo que me sale para ser mas exactos.
se me interrumpe el progrma sale esto y luego si le doiy a step o al play continua la cosa.



[img]c:error.jpg[/img]

ronson 17-02-2004 20:38:43

Ya Estaaaaaaaaa
 
Tienes Razon si lo ejecutas desde el IDE entonces lo que pasa qes que te sale el errosr. pero si lo ejecutas desde el directorio donde esta el .exe todo va de maravilla, muchas gracias por tu ayuda, espero que no te haya dado mucho el follon.

Por cierto donde puedo encontrar informacion acerca de los procedimientos almacenados.

gracias.


Nos vemos.

__cadetill 17-02-2004 20:41:14

Si ejecutas desde dentro del entorno de Delphi, es normal que te salte la excepcion. SIEMPRE te saldran todas las excepciones a no ser que tu configures el Delphi para que no lo haga Tools - Debugger Options - Stop on Delphi Exceptions

No obstante, recomiendo que, en entorno de desarroyo, las excepciones salgan así se puede ver dónde y por qué falla el programa. Para comprovaciones, sólo hay que ejecutar el exe generado por Delphi ;)

Otra buena costumbre es mostrar un mensaje personalizado pero mostrando el mensaje de error original

Código:

try
  // sentencias que pueden provocar fallos
except
  on E: Exception do
    ShowMessage('Error en la aplicación. Mensaje de error:'#13#13 + E.Message);
end;

Espero te sirva

PD: Quedas perdonado :D :D


La franja horaria es GMT +2. Ahora son las 00:00:22.

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