PDA

Ver la Versión Completa : Error al conectar a mySQL


jmselesan
19-09-2003, 13:15:11
Hola. Estoy haciendo una aplicacion con mySQL y Zeos. Resulta, que los datos de la conexion a la BD (Host, User, Port) los guardo en el registro y los asigno al momento de iniciar la aplicacion. Algo así:

Reg: TRegistry;
...
cnBD.Host = Reg.ReadString('Host');
...
try
cnBD.Connect;
except
Application.MessageBox('Error de Conexion...','Error',MB_OK);
Application.Terminate;
end;


Esto funciona bien, el problema está cuando la configuracion no es correcta y no se puede establecer la conexion a mySQL, ya que la aplicacion termina con un mensaje de Win98 'La aplicacion a efectuado una operacion no valida bla bla bla', y en XP me pone el cartel de que encontro problemas con la aplicacion y haber si quiero enviar los datos a Microsoft etc. y queda muy feo que pase en la pc del usuario

¿Que puedo hacer?
Gracias.

roman
19-09-2003, 16:54:28
¿Haz hecho un 'debug' de la aplicación? ¿En qué línea te salta el error?

// Saludos

Viet
19-09-2003, 21:01:27
Estas seguro que la conexion esta cerrada al momento de asignarle los parametros ?

Por las dudas pon la asignación dentro del TRY

Saludos

jmselesan
19-09-2003, 21:25:27
Hola. A ver si me explico un poco mejor. El codigo que transcribi en el mensaje anterior esta en el evento OnCreate del DataModule que contiene la conexion. Antes de hacer algo, desconecto la conexion. El problema esta cuando alguno de los parametros es incorrecto (por ejemplo el host), ya que si hago el debug paso a paso, la excepcion se levanta, la atrapa el except y termina la aplicacion. Pero despues de que la aplicacion termina viene el mencionado error de Windows...

¿Puede ser problema del Application.Terminate?

Espero puedan ayudarme
Gracias.

roman
19-09-2003, 21:49:20
No puedo reproducir el problema. Hice una prueba similar a lo que haces y no me causa ningún error. Estoy usando Delphi 7 y Zeos 6.0.12.

Yo comenzaría tratndode descartar otras cosas. Por ejemplo, haz un proyecto desde cero con un formulario, un módulo de datos y una conexión. Asigna los valores a mano (erróneos para que salte la excepción) y mira si surge el error.

Si aún con esa prueba simple causa error yo revisaría la versión de zeos y conseguir la última en caso de que no lo sea.

Si no causa error entonces el problema anda por otro lado. Posiblemente con lo que haces de leer los valores del registro.

// Saludos

Viet
19-09-2003, 21:52:42
Bien ..... dos cosas a tener en cuenta...

No tienes mas codigo luego de este TRY/Except , no?

Sino debes controlar que no haya definido ninguna operacion dentro de los eventos OnClose de los Forms que estes usando.

No creo que el el Terminate genere ese error......

Yo uso el mismo codigo y no tengo problema alguno.