Ver Mensaje Individual
  #11  
Antiguo 03-09-2005
adlfv adlfv is offline
Miembro
 
Registrado: may 2005
Posts: 39
Reputación: 0
adlfv Va por buen camino
Hola de nuevo compañeros.

Muchisimas gracias por contestarme, de verdad aprecio la buena voluntad y el tiempo que dedican a leer lo que posteo, a pensar, y a responder. Que Dios se los pague y les multiplique su tiempo invertido.

De nuevo les responderé a los dos en el mismo post, pero pueden contestar todos a lo que deseen.

Roman: Creo que ya voy entendiendo el código que planteas, pero para serte sincero creo que necesitaré algo de tiempo para "hacer la digestión" de dicho código, y poder adaptarlo a los requerimientos del programa. Tengo una pequeña gran pregunta , y es... Esa técnica es compatible con desarrollo DB Aware? Porque en el la implementación que llevo a cabo, no es un desarrollo puro de clases/objetos, sino es un hibrido... Al comienzo era todo DB Aware, luego fuí viendo la ventaja de las clases, y ahora tengo una cosa rara hibrida DB Aware-clases/objetos que me tiene un poco despistado. La verdad es que no me termina de gustar la técnica DB Aware, pues no sé pero siempre me deja un sabor de boca de "estar haciendo algo mal"... No me parece una técnica buena como tal, pues cualquier cambio pequeño, supone muuucho tiempo para re-actualizar los campos de los DataSets.

Explico un poco más... La linea que sigo en el proyecto es algo tal que así...

(1) Cualquier entrada de datos, debe hacerse por clases... Tengo una clase llamada TOperaciones, donde estan métodos que me ayudan a realizar operacones, y las operaciones como tal, como son: CheckIn, CheckOut, Cambio de habitacion, Realizar un mantenimiento... Todos los datos de las operaciones se pasan como argumentos, en lugar de hacer asignaciones a propiedades... todavía no tengo claro si esto es lo correcto o no. Tambien me he planteado el hacer clases especificas para cada operacion, es decir, una clase general TOperacion (con lo "posiblemente generico" a todas las operaciones) y luego TOperacionCheckIn, TOperacionCheckOut... y que todas hereden de TOperacion. Todavía no sé cual es mejor, y estoy pensando en ventajas e inconvenientes, incluso para pruebas en DUnit y todo eso.
(2) Cualquier SELECT, UPDATE, y DELETE se hace mediante DB Aware. Esto lo veo más como una sección de mantenimiento... En general, existe un formulario de listado para cada tabla, y dicho formulario tiene métodos para modificar (se muestra un editor asociado), y por último se puede eliminar también de ese mismo formulario.

No tengo claro si esta técnica "hibrida" es correcta o no, y si me va a traer más dolores de cabeza que soluciones, si pudieran aportar también ideas sobre este tema, sería muy interesante (o tal vez deba abrir otro post para esto, para no mezclar ideas...)

Lpmlpm: La verdad es que no sé si todo lo que hace un TTable, lo puede hacer un TQuery, pero por ejemplo, recuerdo que me confundía todo a la hora de hacer una actualización o un borrado con un Query, es decir, recuerdo que alguna vez probé a hacer todo desde un Query como si fuera un TTable, y me daba algunos errores. Nunca he probado los DataClient, pero tal y como comentas parece la forma más "natural" y lógica de trabajar, pues una actualización generalmente tiene dependencias y una eliminación también, y es posible que haya algún interés en hacer más cosas aparte de la simple operación como tal, como por ejemplo realizar operaciones en cascada y cosas así.

La verdad es que me siento un poco abrumado y desorientado, pues me estoy enfrentando a algo más grande de lo que pensaba, y no tengo una "linea clara" a seguir...

Disculpen si pregunto tanto, o si molesto tanto con algunas cosas, pero me gustaría intentar plantear todo lo mejor posible desde el comienzo pues ya he tenido que "retocar" y "reconstruir" muchas cosas por malos planteamientos de base, y eso no es agradable .

Muchas gracias de nuevo por su ayuda, les estoy muy agradecido.

Un cordial ShowMessage('Saludo ');
Responder Con Cita