Fórum O que usa menos memória da máquina ClientDataSet X Variavel #335560

02/01/2007

0

Pessoal,
Bom dia!

Em um sistema: Delphi7 + Firebird 1.5 + DbExpres

Algumas funções como - (Cadastrar, Editar, Excluir, etc ) - que o usuario logado vai fazer no sistema é controlado atravez do seu PERFIL DE ACESSO. Entao quando o usuario logar no sistema gostaria de deixar todas estas permissoes na mémoria para nao ter que ficar fazendo consulta a toda hora no banco de dados uma vez que o banco de dados do meu sistema esta hospedado em um servidor WEB. Estou pensando em deixar na mémoria os parametros de acesso que os usuarios mais usam como por exemplo no cadastro de cliente as opções para ( Cadastrar novo, Excluir, Editar ... etc ) porque assim seria mais rapido e como ja disse evitaria trafego de informações pela rede.
Minha preocupação depois evitar o trafego na rede é guardar estes parametros na memoria mas ocupando pouquissima memoria do sistema.

Minha duvida:

Primeira opção: Pensei em deixar estas informaçoes em um ClientDataSet que seria aberto no momento da abertura do sistema e o mesmo ficaria aberto com estas informações o tempo todo .... ou .. entao ....

Segunda opção: Abrir o mesmo ClientDataSet mencionado na primeira opção porem jogando os valores dele em variaveis que eu criaria no meu FormPrincipal.


E ai o que seria o melhor a fazer ?? Eu teria uma terceira opção que nao pensei ???

Obrigado pela atenção!!


Mmoreira

Mmoreira

Responder

Posts

03/01/2007

Leonardobhbr

Eu particulamente carrego em uma classe todas permissoes do usuário e leio a partir dela eu monto a query que carrega minha classe e despois destruo a query, uso as property da propria classe. Pois é mai rapido que um Client


Responder

Gostei + 0

03/01/2007

Aroldo Zanela

Colega,

O uso de CDS implica na carga do MIDAS, portanto, seguramente irá consumir mais memória. Mas isto não significa diretamente nenhum problema, eis que o sistema de memória virtual do Windows se engarregará de prover os recursos. Pode ocorrer degradação da aplicação de for uma grande massa de dados.
Como você vai armazenar apenas dados e não comportamento, acho que um registro (record) ou matriz pode ser a melhor opção.


Responder

Gostei + 0

03/01/2007

Mmoreira

Senhores,

Muito obrigado pela atenção. Creio que o mais correto a se fazer seria evitar o uso do ClientDataSet mesmo e no meu caso estava pensando em usar um Record, ficaria mais ou menos assim:

type
  TPermissaoCliente = record
    // Cadastrar novo cliente a partir da tela de atendimento
    Cli_Novo : Boolean;

    // Excluir cadastro de cliente
    Cli_Exclui : Boolean;

    // Salvar alterações relizadas no cadstro do cliente
    Cli_Salva : Boolean;
  end;



Seria isso mesmo, o que vcs acham?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar