Depois de incansáveis batalhas na manutenção do projeto/produto da empresa, criei uma classe Singleton para controlar a sessão do usuário.
Ainda está em desenvolvimento, mas a galera já aprovou.
TSession = class
…
public
User : TUser;
Tasks : TTask;
Parameters : TParameters;
Log : TLog;
…
end;
Com essa estrutura minimizamos consulta a banco de dados, fechamos Query abertas em toda execução do sistema, e mantivemos um único ponto de acesso ao Log.