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)
-   -   dudas sobre el DataModule (https://www.clubdelphi.com/foros/showthread.php?t=5902)

Giniromero 10-12-2003 13:37:38

dudas sobre el DataModule
 
Hola a todos,

Tengo unas dudas sobre el uso de los datamodule.
Uso delphi 6 e interbase 7.

¿Como haceis en una aplicación con muchas tablas, las poneis todas en el mismo DataModule, o en varios? si es en varios, ¿por qué?¿es mejor?

¿Cuando abris las tablas, nada más iniciarse la aplicación, o cuando las vais necesitando? En tal caso, ¿como haceis para que no os tarde una barbaridad al abrir el Form o ejecutar el evento que lo abre?

Es que estoy usando un DataModule en mi aplicación, y quiero saber si hay una forma más "elegante" y efectiva de gestionarlo, que la que yo estoy usando.

Muchas gracias

Virginia

marcoszorrilla 10-12-2003 15:46:50

Yo sino es excesivo el número de tablas o consultas las coloco todas en un Datamodulo, también es verdad que en algunas aplicaciones en las que uso muchas tablas, tengo hasta tres datamodulos, pero esto es por comodidad óptica ya que todas en un datamodulo son dificiles de controlar.

En cuanto a abrirlas o no, hago lo mismo sino son muchas las abro todas y me olvidó de tenerlas que abrir para cada proceso, de esta manera solamente sera lento el arranque.

En el caso de ser muchas, las agrupo por procesos de tal manera que si para realizar una factura necesito 5 tablas creo un procedimiento que se encargue de abrir las 5 tablas cada vez que lo necesito, generalmente a este procedimiento le paso un parámetro y así le indico si tiene que abrir o cerrar las tablas.

Un Saludo.

__cadetill 10-12-2003 18:52:06

Bueno, pues yo me estoy acostumbrando a tener un DM por cada Form y, en él poner las tablas que necesita dicho formulario y las activo o desactivo a medida que las necesito o no

delphi.com.ar 10-12-2003 19:33:41

Para variar... yo tengo un solo DM con la DB y los querys necesarios en cada form, los pongo en el form. En el caso de que en la aplicación se compartan DataSets entre formularios, ahí si creo otro DM para este propósito, pero no es algo que suela ocurrir. En el DM además tengo todo el juego de funciones que interactúan con la BD.
Ventajas: tengo solo creados en memoria los DataSets que necesito, en cierto punto es más fácil de entender el código y los controles enlazados ya que el código del formulario queda en el formulario (Eventos de DataSets) y los DataSets y DataSources suelo ponerlos sobre los controles que "alimentan"
Desventajas: No sigo la estructura que propone Borland.

Saludos!

guillotmarc 10-12-2003 21:49:02

Hola.

Yo utilizo una estructura similar a la de Delphi.com.ar

Tengo un datamodule general con la conexión, y los datasets que contienen datos utilizados en distintos lugares. Estos datasets són todos pequeños (con pocos registros : tipos de formas de pago, tipos de productos, lista de empresas, ....) y los abro todos al iniciar la aplicación.

Después cada formulario tiene sus propios datasets, datasources, clientdatasets, .... con los datos que toca unicamente ese formulario. (Todos utilizan la conexión definida en el datamodule general)

NOTA : Los datasets que pueden contener muchos registros (por ejplo. lista de clientes) solo están en el formulario que lo utiliza (en el ejplo, seria el formulario de gestión de clientes), y solo se abre si se carga el formulario.

Además de las desventajas que ha citado delphi.com.ar sobre esta estructura, la principal desventaja que le veo yo es que los datasets del formulario ensucian mucho la pantalla, si tienes muchos, no sabes donde ponerlos para que no tapen los controles de abajo.

Saludos.

delphi.com.ar 10-12-2003 21:56:20

Cita:

guillotmarc comentó:
Además de las desventajas que ha citado delphi.com.ar sobre esta estructura, la principal desventaja que le veo yo es que los datasets del formulario ensucian mucho la pantalla, si tienes muchos, no sabes donde ponerlos para que no tapen los controles de abajo.
Coincido con esto, pero también pienso que es vastante feo ver un datamodule con todos los controles tirados, queda muy poco intuitivo.


Saludos!

guillotmarc 11-12-2003 14:06:00

Cita:

Coincido con esto, pero también pienso que es vastante feo ver un datamodule con todos los controles tirados, queda muy poco intuitivo.
Si, a veces he visto un datamodule general con centenares de datasets, yo prefiero separarlos en datamodules más pequeños donde todos los datasets están relacionados.

Saludos.

Lepe 12-12-2003 10:01:43

Con la venia de los presentes....


Pues yo lo tengo todo junto y revuelto, me explico: Yo uso 2
datamodules Uno con todas las tablas y otro con las consultas
para la impresión (por claridad para mi separo una cosa de otra)

Puede ocurrir, que si es una aplicación MDI y quieres abrir 2
tablas de clientes con distintos datos, entonces necesitas tener
las tablas en cada Formulario... En fin, hay detalles importantes
que dependen de las necesidades de cada aplicación.

También respondeis "si no es excesivo el número de tablas...." y
yo me pregunto, para ustedes, ¿cual es un "número excesivo"?
porque para un novatillo como yo, podriámos decir que con 20 o
30 ya estoy lo suficientemente liado ;)

En cuanto al desorden de los componentes... bueno, eso es muy
subjetivo, cada uno sigue "su orden" :D, yo el datamodule lo miro
como si fuera una rejilla de datos; pongo las tablas en la primera
columna los datasources en la segunda, las consultas en la 3ª
columna, en la misma fila que su tabla, al menos encuentro las
cosas ;).

andres1569 12-12-2003 13:33:13

Hola:

Tengo programas con todos los estilos descritos hasta ahora n este hilo. Cuando empecé con Delphi 16 bits, que no traía los DataModules, utilicé un formulario comodín para situarlos.

Luego tengo algunos programas con casi todo en el mismo DataModule, pero es algo que no me gusta, aunque lo dejé así.

Lo último que tengo es varios DataModules, con uno principal, DMMain donde va la conexión, y tablas auxiliares que se usan en toda la aplicación, y luego varios DataModules enlazados al DMMain.

En particular no me gusta meter Datasets en formularios, aunque sí me resulta muy útil poner DataSources por aquello de poder responder a eventos del Dataset que afecten a controles del formulario, ese código va dentro del Form.

Aunque no lo he hecho hasta ahora, creo que es conveniente que el los DataModules se creen durante la vida del programa, bajo demanda, a excepción claro del DMMain, depende del uso que se dé a ciertas tablas...

Saludos


La franja horaria es GMT +2. Ahora son las 06:05:38.

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