![]() |
Aislamiento de Modulos de Datos en Aplicaciones MDI
En una aplicación MDI es aconsejable utilizar modulos de datos?
Digo esto porque creo (seguramente en mi ignorancia) que si se abren simultanemente dos instancias del mismo formulario MDIChild, que está conectado a un modulo de datos, las acciones sobre una transacción puden afectar al estado de los dataset de ambos formularios. Es decir, imaginemos una dormulario MDIChild de introducción de fichas con dos fichas en modo de inserción y conectadas a una transacción que residen en el mismo modulo de datos: si hago rollback de la transacción no me afectará a ambas fichas? Utilizo Firibird e Ibo. |
Hola.
En efecto, las dos instancias del formulario, atacarán al mismo dataset del datamodule que comparten, de forma que los cambios hechos en un formulario se trasladarán al otro. Tienes dos opciones : A) Los datasets que no deben ser compartidos, los pones sobre el formulario y no en el datamodule. B) Creas un datamodule para cada formulario, de forma que al crear una instancia de un formulario, creas una instancia del datamodule correspondiente. Ahora tienes que enlazar los campos del formulario, con el dataset del datamodule recien creado. Usualmente se suele hacer poniendo un TDatasource en el formulario y enlazando los campos con él. Una vez creada una nueva instancia del formulario y del datamodule, se asigna la propiedad Dataset del Datasource en el formulario, a el Dataset correspondiente en el nuevo Datamodule. Espero que se entienda la opción B). Yo por comodidad trabajo con la A), pero tengo amigos que trabajan con B) sin problemas. Saludos. |
Gracias.
Yo estoy utilizando la opcion A, pero como en el foro siempre se habla de que es mejor la utilización de modulos de datos... |
Cita:
No obstante, la opción B me gusta más que la A :D (sobre gustos, colores) |
Necesito poder abrir simultaneamente dos versiones para hacer intercambio de datos entre ellas, por ello lo de incluir los datasets en el formulario.
Gracias por la aclaración. |
La franja horaria es GMT +2. Ahora son las 20:42:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi