Ver Mensaje Individual
  #17  
Antiguo 06-09-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Reputación: 0
adlfv Va por buen camino
Hola.

Cita:
1.- Según me dices todos los componentes (ADOConnection, ADOQry, ADOTable, etc...) van en el formulario de la clase (ej. Tcliente), no?
No necesariamente tendrás un formulario para cada clase. Hablamos de clases "a lo bestia" jeje . La clase TCliente no es un formulario, es una entidad de datos (o conjunto de datos), es como si fuera una simulación de una tabla clientes de tipo TDataSet, pero con métodos propios.

Veamos un ejemplo para intentar aclarar algunas cosas, imagina un modelo entidad relación, donde tienes Clientes, paquetes y servicios. Un cliente puede adquirir 0 o 1 paquete, y un cliente puede adquirir uno o mas servicios. De esa forma, una posible implementación es que tengas por ejemplo una tabla "Clientes-Servicios" y el paquete que adquiere el cliente, lo pones como un atributo en la tabla de la transacción (relacionado con la tabla paquetes) por ejemplo "Compras". De esta forma (por ejemplo), tendrías las clase TCliente, TCompras, TServicios, TPaquetes. La clase compra tendría una propiedad que sería el cliente, o el ID del cliente. La clase TServicio, pudiese tener por ejemplo un método para buscar por precios, o por popularidad devolviendolos en un TStrings, y cosas así... Ya eso depende de lo que el problema requiera. La clase TCompra, pudiera tener un método por ejemplo para contratar un paquete, y pudiera tener métodos para contratar servicios...

Cita:
2.- Entonces si tengo muchas clases como es normal que tendré muchos ADOConnection?
No me parece lo correcto. Aunque tengas muchas tablas, la base de datos es una, con lo cual sólo debería haber (en mi opinión) una conexión a la base de datos. Lo que sí hay son vinculaciones de dicha conexión a las clases que acceden a los datos. Cuando trabajas de forma clásica pones una conexión, y tienes por ejemplo 5 tablas, pues a las 5 tablas le asignas la propiedad Connection a la conexión. Pues aquí pasa igual, tienes una conexión, pero las clases son vinculadas a ésta.

Cita:
4.- Entonces si no tengo el Componente DataSource como accedo y muestro los datos en los formularios? Mediante los diferentes metodos?
En esto no te puedo ayudar, pues esto tampoco lo tengo muy claro... Me imagino que puedes hacerlo de dos formas, usando componentes DB Aware (DBEdit..) o usando componentes normales (Edits...) cómo cargarías los datos, si usas Edits normales, con métodos... Por ejemplo imagina la clase cliente... Tiene las propiedades Nombre y Apellido: String; Apellido... Pues al asignarle la propiedad en genral usas un método GetNombre: String y GetApellido: String... Luego en el método de busqueda por cliente haces algo tal que así:

EdtNombre := Cliente.Nombre; // O Cliente.GetNombre si no usas propiedades..
EdtApellido := Cliente.Apellido;

Pensandolo bien... Creo que no se pueden usar componentes DB Aware, pues todos se vinculan a un DataSource y éste sólo se puede vincular a una tabla... Sería interesante si existieran TDataSet "virtuales" que no se vinculen a la base de datos, sino que sean controladores de datos en los que tú cargas los datos como en una tabla virtual para que después puedas usarlos...

Espero que te sirva y te oriente lo que te digo.

Un cordial saludo, y ánimo que estamos en las mismas
Responder Con Cita