Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-09-2004
jberaza jberaza is offline
Registrado
 
Registrado: may 2003
Ubicación: MONTEVIDEO - URUGUAY
Posts: 6
Poder: 0
jberaza Va por buen camino
Definir Mis Propias Clases

Estimados amigos del foro, he recorrido este foro en busca de algunos ejemplos pero no los he encontrado.
Estoy comenzando a trabajar con mis propias clases abandonando los viejos metodos desordenados donde todo se repite n veces. Para ello estoy creando mis propias clases tales como

Tcliente = class
private
Id:integer;
Nombre:string;
Direccion:string;
etc.
etc.
public
procedure SetId(i:integer);
function GetId:integer;
etc.
etc.
end;

Durante dias he buscado en internet varios ejemplos para ver si estoy haciendo las cosas bien, pero solo logro encontrar la clase perro, gato, animal, etc. y sobre todo guardadas en arrays o tlist, pero nunca en base de datos, por lo que estos ejemplos simples no se aplican a mi realidad.
No he logrado encontrar un solo ejemplo con las clases tcliente, tarticulo, tfactura, tlineasfactura, etc. que tenga metodos tipo insert, delete, update sobre la base de datos y reamente no se como seguir.

Mi pregunta es si alguien tiene algun diseño simple que me sirva de inspiracion para poder comenzar a pasar mi modelo de datos de mi aplicacion a este mecanismo. Si bien se que no se pueden mandar al foro estos adjuntos agradeceria si alguien se anima a mandarmelos a mi direccion personal jberaza@adinet.com.uy.

Estoy un poco perdido y no se como definir todos los accesos a la base de datos para obtener los valores de los objetos, o como hacer para cada query que tengo en el programa, etc.

Bien, desde ya muchas gracias
saludos
Responder Con Cita
  #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.275
Poder: 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
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


La franja horaria es GMT +2. Ahora son las 08:28:46.


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