Ver Mensaje Individual
  #9  
Antiguo 06-04-2017
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Le pegue una mirada al codigo y es claro como no encuentras el problema.

Esta muy desorganizado y depende demasiado de llevar bien "la cuenta" de que se hace primero y que segundo. Es lo que se llama codigo espagueti.


Deja separado el acceso a los datos, no dupliques la funcionalidad y no uses el mismo objeto para actividades diferentes.

Estructura el código maso asi:


Código Delphi [-]

DB:
  QueryLlamada(Params):TDataSet
  QueryCliente(Params):TDataSet
  UpdateLlamada(Params):Result

GUI:
  Forma1 ->
     Accion1 - > QueryLlamada(...)
     Accion2 - > QueryCliente(...)     
     Accion3 - > UpdateLlamada(...)

La idea es que deberias poder formar un "árbol" del flujo de la aplicación sin que (en lo posible) tengas interdependencias entre los objetos.

Por ejemplo "GetData" esta desparramado en varias partes y toca el mismo objeto. Eso es LO MISMO que tener una variable global. Que por regla general es MALA IDEA.

Ten los objetos encapsulados para cada gran actividad, que garanticen que no es posible (accidental o por pereza) acceder a ellos "a las espaldas de su verdadero dueño".

Estudia sobre los principios de SOLID:

https://en.wikipedia.org/wiki/SOLID_...riented_design
__________________
El malabarista.
Responder Con Cita