![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Hola josi, un dataModule te sirve para tener dentro de el, componentes no visuales, que serían los componentes de acceso a datos (AdoConnection, AdoQuery...), solo necesitas un AdoConnection como te dice Egostar y todos los Adoquerys, AdoTables que necesites, en los formularios es suficiente que incluyas el DataModule en el uses, para que puedas acceder a todos tus Querys...., y enlazarlos a tus componentes de bases de datos (dbGrid,dbEdit....).
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
|
#2
|
||||
|
||||
|
Cita:
// Saludos |
|
#3
|
|||
|
|||
|
Buena pregunta
, yo los pongo en el mismo datamodule, que te parece, está mal ? ![]() Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
#4
|
||||
|
||||
|
Hola
Para mi en esto no hay una regla establecida, ni tampoco una linea a seguir, depende de la comodidad de cada uno. En mi caso en el Datamodule solo pongo el conector (AdoConnection) por que??, por que es el que ligara a todos en el programa. En cada form pongo lo que necesito, tanto los adotable, adoquery, datasource, por que???, por que es mas facil revisar el código que conecta cada uno, sin tener Sopotocientos en el datamodule y dandoles nombres descriptivos para no equivocarte, abriendo cada dos por tres el datamodule para verificar. Se que lo correcto seria todo en el Datamodule, para eso es, pero la comodidad es muy subjetiva. ![]() ![]() Saludos |
|
#5
|
||||
|
||||
|
Es cierto que cada quien se acomoda de una u otra forma, pero creo que mezclar los DataSet en el formulario, a la larga resulta muy complicado. Yo lo hacía así, pero terminas teniendo demasiado código revuelto.
Muchas veces, en el formulario hay que poner código que sólo tiene que ver con la interfaz de usuario, como habilitar o inhabilitar controles, responder a eventos del teclado o del ratón, etc. Si además mezclamos el código de validación de datos, inicialización de registros, etc., el formulario puede convertirse en una mezcla muy difícil de leer. Yo trato de colocar todos los DataSet en su correspondiente datamodule, y los datasource en los formularios. La razón es que me parece que se crea mejor independencia entre los formularios y los datamodule. Si quiero cambiar de componentes de acceso a datos, en principio sólo tengo que apuntar el datasource del formulario al nuevo componente, mientras que si dejo el datasource en el datamodule, tendría que redireccionar todos los componentes db aware al nuevo datasource (porque al cambiar de componentes estoy pensando en un nuevo datamodule). No obstante, el datasource es muy poca cosa, y aunque no sé si es la razón exacta, creo que es por ello que Al González trabaja con un derivado del TDataSource que repite los eventos del dataset. Vamos a ver. Creo que siempre es mejor mantener separado el código de interfaz de usuario del código de acceso a datos; es más legible. Pero simplemente poniendo los dataset en un datamodule y los componentes dbaware en l formulario, no es suficiente: ¿qué pasa si necesitamos actualizar elementos de la interfaz de usuario conforme nos movemos por los registros? Necesitaríamos el evento AfterScroll, pero resulta que está en el DataModule. ¿Qué pasa si hay un error en la inserción de un registro? Para avisar al usuario necesitamos el evento OnPostError del dataset, pero está en el datamodule. Etc. En algunos casos es suficiente con el evento OnDataChange del datasource, pero este evento se genera por muchas causas así que no siempre es lo suficientemente fino. En algunas ocasiones lo que he hecho es implementar un mecanismo primitivo de observación (esto a Delphius le encanta poniendo en el datamodule una propiedad "formulario" que apunta al formualrio (o una lista de formularios) a los que hay que avisar acerca de algún evento. Pero, creo que la solución que da Al es a la larga mucho más clara y práctica.En fin, para opinar... // Saludos |
|
#6
|
||||
|
||||
|
Hola
Para mi hay algo que aveces perdemos de vista, quien hace la pregunta?. Cuando empece ya hace casi dos años en esto de la programación, os leía y por supuesto no entendía nada, hice preguntas que seguramente para vosotros fueron muy básicas e incluso ingenuas. Coincido, después de estos años, que lo que planteas es lo mejor, es lo adecuado y que de alguna manera ordena el formulario, pero pregunto: Cuando se empieza en esto no es mas fácil poner los componentes en el mismo formulario, que ademas, muy seguramente por el tamaño de la aplicación, ya que estoy empezando, serán pocos?. Se que el que mal aprende, mal programara al final, por eso creo que indicar la mejor manera es correcto, pero también incluir la facilidad para entender el concepto lo es, o no?. Siempre es un placer y un privilegio leerte Maestro Roman. Saludos |
|
#7
|
||||
|
||||
|
Algo que se me olvidó en el mensaje anterior:
Los datasource que sí coloco en el datamodule, son los que uso para relaciones maestro-detalle. Por ejemplo, si en el datamodule tenemos un TdsFactura y un TdsLineasFactura, tendré un datasource en el datamodue que apunte a TdsFactura para hacerlo maestro de TdsLineasFactura. En el formulario tendré otro datasource también apuntando a TdsFactura para presentar los datos de la factura. De cualquier forma, yo hice la pregunta un poco para ver sus opiniones, no para hacer ver que ésa es la forma de hacer las cosas, porque es algo que no termino de aclararme. // Saludos |
|
#8
|
||||
|
||||
|
Hola Roman, yo pongo los DataSource en el DataModule, pero ahora leyendo tu explicación me parece mejor que este en el formulario, de ahora en adelante asi lo hare
.Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
|
#9
|
||||
|
||||
|
gracias a ustedes por su ayuda.
tengo otro problema tengo el datamodule con el adoconecction y un form con un adotable, en objec inspector en la propiedad conecction lo conecte con 'DataModule3.ADOConnection1' y en el modo de edicion las tablas se me conectan bien e incluso tiro los campos en el form pero cuando ejecuto me sale este error que dice: proyect proyect1.exe raisedwxception class EDATABESEError with message 'missing Conection or conection string'. gracias....... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Remote DataModule | rodalvi | Providers | 0 | 16-05-2007 10:29:51 |
| Error en DataModule | MasterXP | OOP | 2 | 05-10-2005 04:37:35 |
| Datamodule | VRO | Firebird e Interbase | 2 | 13-07-2004 20:00:45 |
| Dudas con el DataModule | ramonibk | Conexión con bases de datos | 3 | 09-07-2004 13:48:15 |
| datamodule | maruenda | Varios | 1 | 31-12-2003 19:24:21 |
|