FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Comportamiento extraño dataModule
hola a todos, en realidad no sabia donde poner este hilo, asi que sepan disculpar si esta en el lugar incorrecto.
Les comento, que tengo en una aplicacion MDI y por cada formulario tengo un DataModule en donde esta la conexion a la BD y demas yerbas. El DataModule se crea cuando se crea el Form. Todo funciona de maravilla. El problema surge cuando se abren dos o mas veces el mismo form. (se puede ya que la aplicacion es MDI) entonces lo que hace es que cuando se cambia un dato en un form, los datos se cambian en todos los otros. Por lo que pude ver es que en realidad no tengo una copia de cada DataModule en memoria, sino que es como si desde el form estaria haciendo una referencia al mismo DataModule lo que no me interesa que funcione ya que necesito que sean transacciones independiente. Para ejemplificar mas, es una aplicacion de facturacion y quiero dar la posibilidad de tener haciendo varias facturas juntas. El form es la factura y el data modulo maneja los datos de la factura... Espero haber sido claro... y espero alguna sugerencia... gracias |
#2
|
||||
|
||||
puedes probar creando las tablas dentro del formulario, luego estas tablas en su propiedad sesion apuntan a la sesion que tienes en el data modulo, o sea, en el datamodulo tienes el sesion y el database, y "demas yerbas" y en el formulario las tablas con la sesion apuntando al data modulo, asi aseguras el comportamiento que deseas
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
|||
|
|||
Si algunos formularios del sistema los tengo asi, pero en algunos la cantidad de Tablas, Querys, Store Procedure, etc, etc son demasiados para tenerlos en el mismo form. Ademas migre parte del codigo en el data module para que sea mas legible. (¿creo que para eso estan, o estoy equivocado?)
Ademas tengo otro DataModule principal que tiene la conexion a la base de datos, etc, etc. ¿Alguien sabe como hacer para que esto funcione? ¿Donde debo crear el data module?, etc, etc. Gracias |
#4
|
||||
|
||||
El problema viene dado fundamentalmente por ser una aplicación Mdi.
En el Modulo de datos debes de colocar solamente la conexión a la base de datos y la sesión. Porque al ser una aplicación Mdi, el mismo usuario podria abrir la misma factura 2 veces ó 3 desde formularios distintos, entonces cada formulario debe tener su componente Ttable o Tquery quedando centralizada la conexión con la BD y la sesión, aunque también sería conveniente que dijeras que tipo de tablas estás manejando. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
Estoy manejando los componentes IBX + Firebird 1.5.
Esta bien si coloco los IBDataSEt, etc, etc en el form pero se complicaria mucho el diseño y la claridad. No hay forma de que ese DataModule sea privado al form y se habra una copia de el para cada form ? Gracias por todo |
#6
|
||||
|
||||
Cita:
// Saludos |
#7
|
||||
|
||||
Yo pondría un Modulo de datos para la conexión a la BD y alguna cosa más de tipo genérico, luego lo más lógico es que cada formulario lleve sus IbTables, queries.....
Porque crear un Modulo de datos por cada formulario me parece excesivo, pero si lo haces así puede funcionar sin ningún problema. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#8
|
||||
|
||||
Cita:
// Saludos |
#9
|
|||
|
|||
Roman y otros: Gracias por sus opiniones. la verdad es que ya opino lo mismo pero como el sistema es bastante grande quiero darle un poco de claridad en el codigo fuente y migrar algunos controles de datos, inicializaciones, etc, etc a los data modules.
Creo que se veria un poco mas claro. No obstante ya habia probado la respuesta que da Roman y el comportamiento sigue igual. Voy a ver como puedo acomodar las cosas para que funciones decentementes. Gracias |
#10
|
|||
|
|||
Disculpen pero vuelvo a las andadas con este tema. Hice lo que me recomendaron y funciona sin inconvenientes pero si lo miramos el codigo esteticamente queda una chanchada. Se mescla todo los datos y no se entiende nada.
¿Que paso con eso del diseño en 2 o 3 capas? ¿Los data modules no sirvirian en un principio para hacercarse a esa teoria? (no me salten ya se que no es lo mismo, pero bueno...) Agredeceria comentarios al respecto. Gracias... |
|
|
|