Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Hace tiempo, años, hablamos sobre esto y diversos componentes de conexión a BD que controlaban ese problema. A ver si lo encuentro...
Responder Con Cita
  #2  
Antiguo 11-06-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Pero no es lo mas logico que en tiempo de diseño la propiedad Connected este siempre a False, y luego se conecte en el momento mas apropiado (= un evento)?

En mi caso particular el connection string lo defino tambien en tiempo de ejecucion, en el evento OnBeforeConnect del Connection. Luego en el OnCreate del DataModule realizo el Conneciton.Open
Responder Con Cita
  #3  
Antiguo 11-06-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
AgustinOrtu,

Cita:
Empezado por AgustinOrtu
...no es lo mas lógico que en tiempo de diseño la propiedad Connected este siempre a False, y luego se conecte en el momento mas apropiado...


Nelson.
Responder Con Cita
  #4  
Antiguo 11-06-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por AgustinOrtu Ver Mensaje
Pero no es lo mas logico que en tiempo de diseño la propiedad Connected este siempre a False, y luego se conecte en el momento mas apropiado (= un evento)?
Por lo que comenta, el problema es que se le olvida desactivarlo a veces.
Es lógico que la conexión esté abierta en diseño, pues algunas operaciones con tablas/querys y grids, requieren que esté así, por ejemplo cuando ase añaden campos.

Si al generar el EXE no recueradas desactivarla, la conexión queda abierta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 12-06-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por Neftali Ver Mensaje
Por lo que comenta, el problema es que se le olvida desactivarlo a veces.
Es lógico que la conexión esté abierta en diseño, pues algunas operaciones con tablas/querys y grids, requieren que esté así, por ejemplo cuando ase añaden campos.

Si al generar el EXE no recueradas desactivarla, la conexión queda abierta.
Buenas German, pero aun asi y todo, si uno provee la ConnectionString en el BeforeConnect no deberia dispararse el evento y asignar una conexion correcta?

Sino la otra posibilidad que se me ocurre es tener otro archivo .dfm de DataModule en cuestion, y utilizar directivas de compilacion para indicar que cuando compile en release utilice el .dfm sin la conexion

Otra forma pero que requiere mas "trabajo" es usar git o algun control de versiones. Siendo mas o menos cuidadoso estos deslices los encontras facilmente al momento de realizar los commit

Última edición por AgustinOrtu fecha: 12-06-2015 a las 05:13:09.
Responder Con Cita
  #6  
Antiguo 12-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

La verdad, es que la situación sigue sin quedarme clara...
Cita:
...lo he puesto en el datamodulecreate pero los valores los carga antes.
Como yo lo veo, cuando intente cargar los valores (mediante un un TADOLoqueSea) antes de estar creado el TDataModule, y por lo tanto el TADOConnection que allí está radicado, obtendríamos un lindo mensaje de "Missing connection or ConnectionString". No tiene sentido hablar de que esté o no conectado cuando aún no ha sido creado.

Cita:
hay alguna forma automatica de hacer que el connected siempre este a false al compilar o antes de arrancar la aplicacion
Si, una simple comprobación de su propiedad Connected en la creación del TDataModule, nos dá la posibilidad de accionar:
Código Delphi [-]
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
  if ADOConnection1.Connected then // ¿ Me quedó abierto ?
    ADOConnection1.Close;          // entonces lo cierro

  // Hago lo que corresponda y continúo...
end
Claro está, que si el TDataModule esta en auto-create forms, tendrá que tener mayor precedencia que el módulo que intenta referenciarlo. Y, si se crea en tiempo de ejecución, la llamada a la creación también deberá ser previa al uso del mismo.

Por favor corríjanme si estoy malentendiendo el problema.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 12-06-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Daniel creo que lo que pasa es algo del estilo, en tiempo de diseño tengo la connection string seteada a que apunte a mi sql server/archivo access/etc. Seguro la seteo con el asistente de "build conneciton string"

Entonces si dejas el connected a true, tenes en el .dfm algo asi

Código Delphi [-]
Connection = TADOConnection1
  ConnectionString = '\Pepe.mdb'
  Connected = True

Al cargar las propiedades persistentes, en la pc de el no hay problema. Pero en otra pc anda a saber donde esta "pepe.mdb"

Me parece que va por ese lado la cosa
Responder Con Cita
  #8  
Antiguo 12-06-2015
josepicd josepicd is offline
Miembro
 
Registrado: jun 2015
Posts: 57
Poder: 12
josepicd Va por buen camino
Correcto AgustinOrtu, exactamente ese es el problema
Responder Con Cita
  #9  
Antiguo 12-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Agustín
Cita:
Empezado por AgustinOrtu Ver Mensaje
Daniel creo que lo que pasa es algo del estilo, en tiempo de diseño tengo la connection string seteada a que apunte a mi sql server/archivo access/etc. Seguro la seteo con el asistente de "build conneciton string"

Entonces si dejas el connected a true, tenes en el .dfm algo asi

Código Delphi [-]
Connection = TADOConnection1
  ConnectionString = '\Pepe.mdb'
  Connected = True

Al cargar las propiedades persistentes, en la pc de el no hay problema. Pero en otra pc anda a saber donde esta "pepe.mdb"

Me parece que va por ese lado la cosa
Si, lo que comentas es correcto y entiendo ese punto. Lo que no me queda claro como es que logra usar la conexión antes de estar creada.

De todos modos y aunque no soy un experto en ADO, se puede asignar otra cadena de conexión en el evento OnCreate del DataModule o en el evento BeforeConnect del propio componente como bién apuntaste con anterioridad.

Saludos

Pd: Alberto, luego voy a revisar con detenimiento tu mensaje que seguramente me resultará muy interesante e instructivo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 12-06-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.441
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por AgustinOrtu Ver Mensaje
...si uno provee la ConnectionString en el BeforeConnect no deberia dispararse el evento y asignar una conexion correcta?
Correcto.
Esta opción también debería funcionar y también me parece buena.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
excepciones con TADOConnection JuanPa1 Conexión con bases de datos 5 18-07-2007 22:49:09
TAdoConnection Genner Conexión con bases de datos 1 16-11-2006 10:03:37
Desconectar FlashMemory Deiv Windows 6 31-01-2006 04:52:22
Servicio con TADOConnection Duc Conexión con bases de datos 0 27-07-2005 14:08:14
TADOConnection/TADOStoredProc arantzal Varios 5 04-02-2005 11:23:06


La franja horaria es GMT +2. Ahora son las 23:33:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi