Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Conexion por defecto (https://www.clubdelphi.com/foros/showthread.php?t=91614)

DenisDiaz 18-03-2017 00:03:41

Conexion por defecto
 
Hola

Tengo una conexión usando el componente FireDac. En el ambiente de desarrollo usualmente tengo la propiedad connected = True, cuando ejecuto el programa en el equipo del cliente da error pues los datos de conexión del cliente son diferentes y el programa ejecuta la conexión antes de que pueda pasarle los datos de la conexión del cliente. Quisiera saber si existe forma de poner la propiedad connected en false antes de que el programa intente conectarse usando la configuracion por defecto y así evitar el error.

Muchas gracias por sus respuestas.

Caminante 18-03-2017 00:38:56

Hola

Solo hay que poner la popiedad connected a false en tiempo de diseño y en el evento beforeconnect asignar los valores de conexion correctos por ejemplo desde un archivo ini.

Espero te sea util

Saludos

DenisDiaz 18-03-2017 01:12:40

Gracias por la respuesta.

Si pongo la propiedad en false en tiempo de diseño no tengo el problema, lo que sucede es que muchas veces se me olvida actualizar la propiedad y quisiera controlarlo por código para no depender de la memoria, pero todo depende de si es posible, de no poderse será cuestión de estar más pendiente.

orodriguezca 18-03-2017 15:02:14

El componente de conexión de Firedac tiene una propiedad llamada ConnectedStoredUsage. En el Inspector de Objetos puedes establecer el valor ConnectedStoredUsage.auDesignTime a "True" y ConnedtedStoredUsage.auRunTime a "False"; de esta forma se puede dejar el componente conectado en tiempo de diseño, pero no lo estará cuando se ejecute la aplicación.

AgustinOrtu 18-03-2017 17:35:19

Yo nunca tuve problemas con eso. Se supone que si una conexion esta cerrada, e intentas ejecutar un query por ejemplo, la conexion se abre automaticamente. O estoy equivocado?

orodriguezca 18-03-2017 18:55:40

Cita:

Empezado por AgustinOrtu (Mensaje 514476)
Yo nunca tuve problemas con eso. Se supone que si una conexion esta cerrada, e intentas ejecutar un query por ejemplo, la conexion se abre automaticamente. O estoy equivocado?


Tu apreciación es correcta AgustinOrtu. El problema que se quiere resolver aquí es el que ocurre cuando "accidentalmente", en tiempo de diseño, dejamos abierta la conexión a la base de datos, pues los parámetros de conexión son los de nuestro ambiente de Desarrollo (IP, Usuario, password, ect). Cuando la aplicación se ejecuta en el ambiente de producción "revienta", pues el componente de conexíón (adConnection) trata de establecer conexión tan pronto se crea el modulo de datos y antes de configurar los parámetros de conexión con los valores adecuados (posiblemente de un archivo .ini).

FireDac en su componente ADConnection (o FDConnection) resuelve este problema mediante la utilización de la propiedad ConnectedStoredUsage.

Por supuesto, los programadores que prefieren crear los objetos "al vuelo" y no en tiempo de diseño, no experimentan este tipo de problemas.

DenisDiaz 18-03-2017 19:04:41

Muchas gracias por la solución, voy a probarla.

AgustinOrtu 18-03-2017 19:20:20

Ah creo que ya se por donde van los tiros

Si abres un Query en tiempo de diseño te activa la conexion por mas que la tengas a False y luego te queda en True

No usas versionado de codigo fuente? Este tipo de problemas los detectas en un santiamen


La franja horaria es GMT +2. Ahora son las 10:41:55.

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