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)
-   -   Autocreacion de Datamodules S/N (https://www.clubdelphi.com/foros/showthread.php?t=44642)

brakaman 11-06-2007 22:46:22

Autocreacion de Datamodules S/N
 
Hola :

¿Los modulos de datos los teneis en autocreacion o los creais por codigo?

Si los creais por codigo lo haceis en el evento oncreate del formulario que los usa ¿NO?

Y los destruis cada vez que cerrais el formulario y luego los volveis a crear .¿No se pierde mucho tiempo asi?. ¿No se?

Saludos.

dec 12-06-2007 00:16:33

Hola,

Depende, depende y depende. Puedes crear los "TDataModule" (como cualquier otro objeto) en el momento en que vayas a hacer uso del mismo, y destruirlo acto seguido. Puedes crearlo al inicio de la aplicación, en el archivo "DPR" del proyecto, o en el evento "OnCreate" de un formulario. Depende, depende y depende. :)

Caral 12-06-2007 01:42:34

Hola
Pregunto:
Para que crear un datamodule por codigo?
No es mas facil en tiempo de diseño?
Un Datamodule (contenedor de datos)., me extraña.:confused:
Saludos

AzidRain 12-06-2007 02:48:29

Coincido Caral, el datamodule basicamente nos ayuda a tener a la mano los datasets que ocupemos en nuestro proyecto, de manera que podamos acceder rapidamente a ellos. Si lo hacemos por código pierde esta funcionalidad además de volverse engorroso.

Por otro lado, si usamos un dataset solamente en un formulario, si es mejor crear el dataset por código y destruirlo cuando no se utilice más.

roman 12-06-2007 03:23:21

Yo coincido con dec. Si recordamos el hilo Un Datomodulo o varios?, los argumentos que algunos dimos ahí para tener más de un módulo de datos por aplicación, aplican también para su creación. Hay módulos que posiblemente no se usen en una corrida, dependiendo del trabajo que se esté haciendo. Tales módulos sería innecesario crearlos.

// Saludos

Caral 12-06-2007 04:44:16

Hola
Roman, no se en que estas de acuerdo, si se habla del datamodule, se habla de un lugar o form en el que se coloquen tanto los conectores de las bases de datos, como los tables, querys, reportes, etc, etc.
Segun recuerdo uno de los argumentos es tener en orden el proyecto, teniendo un lugar en donde ubicar todo lo dicho y poder tener acceso a estos a lo largo del proyecto.
Casualmente en mi caso, al utilizar el datamodule exclusivamente para el conector, a la hora de querer hacer un cambio de sistema se hace muy engorroso el trabajo, ya que hay que recorrer cada form, para hacer los cambios.
Sigo sin entender el porque hacer o crear un datamodule en ejecucion, sea donde sea, para que, si se crea de esta manera, para que sirve?, abra que crear los tables, querys y demas de la misma manera?, todo por codigo en ejecucion, para mi es volver al DOS, o basic.
Por supuesto Roman, este comentario es de un novato, solo opino y busco aprender, sin cuestionar tu conocimiento.
Saludos

ArdiIIa 12-06-2007 05:11:00

Yo también soy partidario de:
  1. Crear tantos módulos de datos como sean precisos.
  2. Crearlos por código, cuando sean necesario.
A mi juicio, esto permite mantener una aplicación de forma mas organizada, y por supuesto, acceder a aquellos elementos del programa, solamente cuando son necesarios, por lo cual se hace preciso que esos módulos sean creados por código, justamente en ese momento, cuando son necesarios, y cuando no lo son, pues fuera....

Pongamos como ejemplo una aplicación con la que estos días me estoy peleando, la cual su planteamiento inicial fue erróneo. Este programa, consta de cientos de ventanas, reports y por supuesto incontables componentes de datos, el problema es que solamente cuenta con un solo datamodule, lo que para mi, resulta totalmente caótico. Huelga decir que ese datamodule se crea al inicio del programa y permanece durante toda la ejecución del mismo, con todo lo que ello acarrea...

maeyanes 12-06-2007 18:48:21

Cita:

Empezado por Caral
Hola
Roman, no se en que estas de acuerdo, si se habla del datamodule, se habla de un lugar o form en el que se coloquen tanto los conectores de las bases de datos, como los tables, querys, reportes, etc, etc.
Segun recuerdo uno de los argumentos es tener en orden el proyecto, teniendo un lugar en donde ubicar todo lo dicho y poder tener acceso a estos a lo largo del proyecto.
Casualmente en mi caso, al utilizar el datamodule exclusivamente para el conector, a la hora de querer hacer un cambio de sistema se hace muy engorroso el trabajo, ya que hay que recorrer cada form, para hacer los cambios.
Sigo sin entender el porque hacer o crear un datamodule en ejecucion, sea donde sea, para que, si se crea de esta manera, para que sirve?, abra que crear los tables, querys y demas de la misma manera?, todo por codigo en ejecucion, para mi es volver al DOS, o basic.
Por supuesto Roman, este comentario es de un novato, solo opino y busco aprender, sin cuestionar tu conocimiento.
Saludos

No soy Román pero igual te contesto... jeje

A lo que se refiere Román es que no todos los DataModules tienen que estar creados desde el inicio de la aplicación...

Por ejemplo, el DataModule que usas para tener la conexión a la base de datos, ese si lo puedes tener para que se cree automáticamente al iniciar la aplicación. Pero puede que tengas un DataModule que solo necesites en cierto momento de la aplicación, entonces, no es buena idea tenerlo todo el tiempo en memoria si solo se va a usar por un tiempo corto en cierto momento; en ese caso, puedes crear el DataModule antes de usarlo y luego de usado lo destruyes de nuevo. Con esto no quiere decir que tengas que construir todos los componentes del DataModule por código, puedes crearlo en tiempo de diseño y sacarlo de la lista de autocreación del proyecto y ya luego al momento de usarlo:

Código Delphi [-]
with TShortLifeDataModule.Create(nil) do
  try
    // Aqui uso los componentes y/o métodos del DataModule
  finally
    free
  end

Espero que esto aclare tus dudas al respecto...


Saludos...

gluglu 12-06-2007 19:03:32

Marcos lo ha explicado perfectamente !

Caral : No se trata de 'diseñarlo' y meter todos tus querys, etcetera en dicho datamodule, que evidentemente lo harás en tiempo de diseño. Se trata de 'crearlos' para que estén disponibles a la aplicación en sí mismo.

Es decir, DataModule.Create

Eso coincido plenamente con todos los comentarios anteriores. Depende, depende y depende. Dependerá de cada aplicación y uso.

Como dice ArdiIIa, un DataModule con cientos de DataSet's que se cree al principio de la aplicación y esté activo durante toda la aplicación, no tiene sentido en absoluto.

Caral 12-06-2007 21:11:46

Hola
Bueno, por eso uno es un novato y hace preguntas o se cuestiona como tal.
Os ha veis explicado perfectamente, ya entiendo el punto, ya se que soy lento pero llego.:D
Espero no haber ofendido a Roman, con mi inquietud, no fue mi intencion.
Saludos

egostar 12-06-2007 21:44:00

Cita:

Empezado por Caral
Hola
Bueno, por eso uno es un novato y hace preguntas o se cuestiona como tal.
Os ha veis explicado perfectamente, ya entiendo el punto, ya se que soy lento pero llego.:D
Espero no haber ofendido a Roman, con mi inquietud, no fue mi intencion.
Saludos

No te sientas mal amigo Caral, yo siempre pensé que un DataModule se "debe" de crear en tiempo de diseño, no es cosa de novatos (quiero decir, Ex-Novatos :D:D:D), mas bien es una cuestión de estilos.

Vamos pues que yo también aprendí algo hoy, eso es lo destacable.

Salud OS.

brakaman 12-06-2007 22:07:02

Bueno pues yo tambien he aprendido algo mas.

al final creo que crearlos por codigo sera lo que ahorrara mas recursos, y tambien considero que crear varios sera mas eficiente y ordenado.

De todas maneras como bien decis depende, se pueden hacer pruebas.

Gracias a todos.


La franja horaria es GMT +2. Ahora son las 11:17:33.

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