Ver Mensaje Individual
  #2  
Antiguo 27-09-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.289
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo he trabajado (y sigo en ello) en proyectos de éste estilo; En internet puedes mirar infomación sobre Capas de persistencia;

* Proyecto ObiWan (Jedi): http://obiwan.sourceforge.net/
* Documentación ambisoft: http://www.ambysoft.com/persistenceLayer.html
* Artículos: http://www.scalabium.com/
* InstantObjects: http://codecentral.borland.com/codec...sting?id=18520
http://www.seleqt.com/instantobjects/
http://sourceforge.net/projects/instantobjects/
* tiOPF TechInside: http://www.techinsite.com.au/tiOPF/Default.htm

No puedo enviarte código pues no es de mi propiedad, pero sí puedo solventarte las dudas que tengas (sólo tienes que preguntar...).
En cuanto al diseño, así a grandes rasgos (a muy grandes rasgos), yo trabajo con una "clase base"(1) llamémosla TAppRegistro. En ésta clase están implementados todos los métodos de acceso a Base de Datos. Todas las demás clases pertenecientes al modelo de negocio (TCliente, TProveedor, TFactura,...) derivan de ésta y redefinen (si hace falta alguno de éstos métodos).
Por por lado debes tener un "Diccionario de Datos"(2) que básicamente es el que almacena qué clases tienes definidas en tu aplicación y la estructura de cada una de ellas (su misión es que es utilizada por la parte (3)).
Por otro lado la tercera parte es un "Gestor de persistencia"(3) que realmente es quien interactua con la Base de Datos (capa que independiza tu modelo de la Base de Datos concreta con la que trabajas).

El funcionamiento en sí es sencillo (simplificando mucho): Cuando desde una Clase TCliente se hace un Insert (en realidad se hace desde TAppRegistro), ésta clase llama al "Gestor de persistencia" que utilizando el "Diccionario de Datos" crea la sentencia SQL apropiada y la lanza contra la Base de Datos. TODAS las sentencias SQL, Transacciones,... (en general toda interacción con la BD se hace desde el "Gestor de Persistencia").
En el diccionario de datos tienes todas las clases que se utilizan, los campos/propiedades de esas clases, particularidades de esos campos, y en general toda la información que es "gestor de persistencia" pueda necesitar de una clase.

Sé que es algo muy genérico, pero la pregunta y el sistema tb lo son. Si tienes preguntas o dudas más concretas ya dirás...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita