![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#2
|
||||
|
||||
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.
__________________
Guía de Estilo de los Foros Cita:
![]() |
#3
|
|||
|
|||
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
|
#4
|
||||
|
||||
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!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#5
|
||||
|
||||
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.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#6
|
||||
|
||||
Cita:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#7
|
||||
|
||||
Cita:
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#8
|
||||
|
||||
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" ![]() 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 ![]() |
#9
|
|||
|
|||
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
__________________
Guía de Estilo |
![]() |
|
|
![]() |
|