Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 28-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por vtdeleon
tiene sus pro y contras
¿Cómo cuales?

No dudo que tengas razón, pero para ganancia del debate sería interesante conocer en qué casos la gente prefiere poner los datasets en los formularios.

// Saludos
Responder Con Cita
  #22  
Antiguo 28-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Hola a todos.

Ahora mismo por necesidad del cliente, quiere tener varias ventanas abiertas de cliente, y en cada ventana quiere tener un cliente distinto. En esta situación no se pueden compartir los objetos TTable en un solo Datamodule, hay que poner las tablas y los datasources sobre el mismo Form, abrirlos al crear la ventana y cerrarlos al salir. También se ha comentado alguna vez el hecho crear un datamodule por cada Form que se tenga, así se independiza el acceso a dato de la interfaz (esto le gusta mucho a román ) para mí es demasiado.

Lo cierto es que uso un Datamodule general para configurar la conexión, objeto database, tablas y consultas que si se comparten con varias ventanas, (por ejemplo un listado de clientes ordenado alfabeticamente, etc), y todos ellos si se mantienen abiertos durante toda la ejecución del programa.

La rutina que abre los datasets:
Código Delphi [-]
    with dtm do
      for i := 0 to ComponentCount-1 do
      if components[i] is TDBDataset then
      with TDBDataset(components[i]) do
        Open;
Tanto el TTable como los TQuerys descienden de TDBDataset del BDE, por tanto tienen los métodos Open y Close. De hecho, el TTable no implementa el método Open (ni lo sobrescribe), sino que lo hereda de sus antecesores.

Ahora mismo trabajo con Firebird y MDO, no uso el BDE ni tampoco objetos TTable sino MDODatasets, pero bueno, para que se entienda lo puse así.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #23  
Antiguo 28-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Siendo un poco pesado: si separar la interfaz de usuario del aceso a datos es demasiado, entonces no hay más que decir: que se coloquen las componentes donde mejor nos parezca.

// Saludos
Responder Con Cita
  #24  
Antiguo 28-10-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Cita:
Empezado por roman
No dudo que tengas razón, pero para ganancia del debate sería interesante conocer en qué casos la gente prefiere poner los datasets en los formularios.
Te escribiré de mi manera en particular.

Creo que Lepe ha dado un punto de el por qué uso dataset en los Forms
Cita:
Empezado por Lepe
Ahora mismo por necesidad del cliente, quiere tener varias ventanas abiertas de cliente, y en cada ventana quiere tener un cliente distinto. En esta situación no se pueden compartir los objetos TTable en un solo Datamodule, hay que poner las tablas y los datasources sobre el mismo Form, abrirlos al crear la ventana y cerrarlos al salir.
Por lo regular desarrollo en FB, utilizando MDO y solo MDODataset (Ds). Cada formulario puede requerir uno que otro campo (uno, dos o todos), por tanto suelo tener "Ds" que solo traigan los campos y registros necesarios para mi consulta o transacción. Y preguntaras ¿Por qué no poner todo esos "Ds" en un Datamodulo?, pues para el simple hecho de no confundirme, no tener nombres similares o parecidos, además de tener todo centrado.

Pongamos un Ej. de un "Ds" que no dejaría solo en un Datamodulo: Tabla Empleados (Sis. Nóminas).

En este necesitamos un Formulario de registro de Empleados, para lo cual necesitaremos todos los campos de la tabla Empleado; otro formulario solo para consultar quienes cumplen año en un determinado Mes; otro para consultar sus ingresos y/o prestaciones; y así sucesivamente. Como puedes ver, los dos últimos formularios solo necesitan ciertos campos, no todos.

Cita:
Empezado por Lepe
Lo cierto es que uso un Datamodule general para configurar la conexión, objeto database, tablas y consultas que si se comparten con varias ventanas, (por ejemplo un listado de clientes ordenado alfabéticamente, etc), y todos ellos si se mantienen abiertos durante toda la ejecución del programa.
En un Datamodulo suelo agregar MDODatabase, Transaction, ciertos objetos no visuales como el TImageList y rara vez un "Ds" como la tabla de Usuario (por decir uno fácil).

El mantenimiento seria duro, engorroso, devastador; Cambiar de DB descomunal. No existe un Sistema Ideal.

Con respecto al tiempo en que duraría la aplicación en iniciar, esto es relativo.

Dataset en Datamodulo: Cada vez que se inicia la aplicación tarde un poco mas en estar "ready" porque esta creando los Objetos que se encuentran el en Datamodulo. Ganando un poco mas de rapidez cada vez que creas un formulario.

Dataset en Forms: Viceversa.

PD: :rooleyes: Quede claro que es la manera en como lo veo, Personal. Y como es así, podría tener un punto de vista o algunos conceptos erróneos, por lo que podría cambiar si es para mejorar .

Pd: No soy muy bueno expositor.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #25  
Antiguo 28-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Supongo que la mayoría de nosotros, durante el inicio de la aplicación usamos un SplashScreen, como original que soy, incluyo el logo de la empresa con Transparentcolor a true y si acaso un ProgressBar debajo.

Seamos realistas, a las empresas les encanta ver su logotipo en un programa, y si lo presentas bonito, mucho mejor . Eso si, jamás uso un Timer para que se detenga un tiempo, y si alguna vez he de hacerlo, no creo que supere 1.5 segundos.

roman, creo que no me expresé con claridad. Respeto tu opinión y sé que vas muy por delante de mi, quizás lo vea de otra forma dentro de un tiempo. Ahora mismo "me parece demasiado" el trabajo que, a mi entender, supone el crear dinámicamente las ventanas,y además crear el Datamodule asociado; quizás uses alguna técnica que simplifique los pasos. Tal y como yo lo he interpretado, sería crear la ventana y en el FormCreate, crear el DAtamodule, asignándole el Padre para que se libere al cerrar la ventana.

Ahora mismo, aún trabajando con 2 monitores, me falta espacio para el IDE y las ventanas que diseño, si incluyo un Datamodule por cada Ventana, (pueden ser perfectamente más de 60), me volvería tarumba (es que soy muy flojo ).

Tampoco he tenido que actualizar los componentes de BBDD a otro motor, y sé que en ese caso me tocaría casi realizar la aplicación de nuevo... simplemente rezo para que no llegue ese momento .

Antes jamás usaba objetos, POO, ni DUnit, ahora para mí es una religión, por eso no quisiera que te molestase si alguna vez difiero de tí, reitero, para mi es un honor leer tus opiniones y comentarios.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #26  
Antiguo 28-10-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
Empezado por Lepe
si incluyo un Datamodule por cada Ventana,
No le veo sentido para hacer eso

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #27  
Antiguo 29-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por vtdeleon
No le veo sentido para hacer eso

Saludos
Eso creo que es lo que roman quiere que entendamos: "separar la interfaz del acceso a datos".

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #28  
Antiguo 29-10-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Siempre, en todos los proyectos, separo "los datos" de la "presentación", pongo en los DataModules los Querys, DataSets, etc. y en los Forms sólamente los DataSources pertinentes enlazados a los Datamodules.
Y, por supuesto, creación/destrucción dinámica de Forms, DataModules, etc
Creo que es la mejor forma de tener un orden y claridad en un proyecto.
En cuanto a la excusa de que no caben en pantalla, a mí no me parece motivo, pero bueno, cada uno tiene sus gustos y manías, y todas son respetables.
Responder Con Cita
Respuesta



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
Problema al filtrar un Query entre fechas judit25 Conexión con bases de datos 18 20-04-2007 00:03:38
Filtrar una tabla con 2 rangos maravert Impresión 2 30-04-2006 19:10:43
Filtrar Tabla jovehe Tablas planas 6 15-09-2004 22:06:32
como filtrar una tabla andre navarrete Varios 5 11-08-2004 06:17:19
Filtrar una tabla Tangela Conexión con bases de datos 1 29-05-2003 00:56:37


La franja horaria es GMT +2. Ahora son las 13:15:50.


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
Copyright 1996-2007 Club Delphi