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)
-   -   Problema con conection (https://www.clubdelphi.com/foros/showthread.php?t=7397)

davidgaldo 13-02-2004 19:36:42

Problema con conection
 
Hola a todos, tengo una aplicación con muchos forms, los cuales se conectan con varias tablas de una bd access mediante ADO, lo que pasa es que uso el componente adoconnection y en el atributo connection String le defino la ruta donde se encuentra la bd. Pero si muevo la bd de sition tengo que modificar todos los componentes connection de todos los forms, no hay una manera más sencilla y que yo no se, tiene algo que ver el data link file??

__cadetill 13-02-2004 19:50:35

No he trabajado con ADO, pero para el caso es lo mismo. ¿No te serviría poner el TADOConnection en un módulo centralizado (digomos un DataModule) y que accedieran todos a él desde cualquier formulario?

davidgaldo 13-02-2004 19:59:41

Puedes ponerme un ejemplo?

__cadetill 14-02-2004 10:16:30

Cita:

Empezado por davidgaldo
Puedes ponerme un ejemplo?

¿El problema está en que no sabes utilizar un DataModule?
Si es así, te remito a las demos que trae Delphi (o alguna de mi web) donde verás el uso del DataModule (es que se me hace dificil explicar su funcionamiento).

No obstante, pegas el componente en el DataModule y, en cada Form donde lo quieras utilizar, añades el DataModule en el Uses y listo, ya puedes acceder al TADOConnection

DarkByte 14-02-2004 10:45:53

Para mí el DataModule es como un tablón de anuncios donde cuelgo las tablas... el DataBase... DataSet... para que sea accesible para todo el programa...

rafita 16-02-2004 13:55:53

Yo utilizo un método más chapucero pero igual de válido.
En lugar de crearme un DataModule, me defino la conexión en el módulo principal de la aplicación:

Código:

object ADOcn1: TADOConnection
    ConnectionString =
      'PROVIDER=SQLOLEDB.1;integrated security=SSPI;Initial Catalog=AIS' +
      '; Persist Security Info=False;Data Source=SERVERMAYOR'
    LoginPrompt = False
    Provider = 'SQLOLEDB.1'
    Left = 288
    Top = 168
  end

y, en cada formulario y para cada componente, le asigno la conexión en tiempo de ejecución:
Código:

ADOQuery1.Connection:=FPrincipal.ADOcn1; // en el evento OnCreate del formulario
por supuesto el formulario principal tiene que estar declarado en la clausula Uses de los otros.

En cualquier caso te recomiendo usar el DataModule, como te suguiren los compañeros, porque así no tienes que repetirte definiciones de componentes en cada formulario.
Mi método tiene la ventaja de que tienes que modificar menos tu código para arreglarlo.

Un saludo.


La franja horaria es GMT +2. Ahora son las 21:45:57.

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