AJUDA COM MULTI USUARIOS
                    Boa noite galera,
Finalmente terminei meu form[ô]zinho de login, consegui cadastrar novos usuarios em um pequeno form de cadastro de Administração do Sistema
Mas agr tenho uma duvida, se o sistema funcionará em rede e vários usuarios iram logar ao msm tempo(entenda-se mais do que UM)
A duvida é a seguinte: Como o form de administração terá checks e options de autorização para determinado usuario poder ou nao executar X ação no sistema(Ex: usuario N nao pode excluir produtos) entao se for marcado nesse usuario esse check ao abrir o form de cadastro de produto irá verificar qual o usuario logado e se for usuario N deixa enabled = false o botao excluir
Pensei em usar variavel global, acho que o mais sensato e simples.
Mas se um usuario se loga no sistema as 8: 10 e o outro as 8 : 11 a variavel nao seria editada e atribuido uma string correspondente ao ultimo usuario que foi logado?
Como eu poderia resolver isso?
Abraços
            Finalmente terminei meu form[ô]zinho de login, consegui cadastrar novos usuarios em um pequeno form de cadastro de Administração do Sistema
Mas agr tenho uma duvida, se o sistema funcionará em rede e vários usuarios iram logar ao msm tempo(entenda-se mais do que UM)
A duvida é a seguinte: Como o form de administração terá checks e options de autorização para determinado usuario poder ou nao executar X ação no sistema(Ex: usuario N nao pode excluir produtos) entao se for marcado nesse usuario esse check ao abrir o form de cadastro de produto irá verificar qual o usuario logado e se for usuario N deixa enabled = false o botao excluir
Pensei em usar variavel global, acho que o mais sensato e simples.
Mas se um usuario se loga no sistema as 8: 10 e o outro as 8 : 11 a variavel nao seria editada e atribuido uma string correspondente ao ultimo usuario que foi logado?
Como eu poderia resolver isso?
Abraços
                    Sem problemas, cada instância do software é independente, elas não compartilham variáveis globais.
                
            
                    Idem.... Independente cada usuário é um usuário. 
                
            
                    Entao se eu usar uma unica variavel EX: varUsuario
ela irá poder ser usada por todos usuarios que estiverem logados?
                
            ela irá poder ser usada por todos usuarios que estiverem logados?
                    Vamos por partes: existe 2 jeitos de logar. 
1º - O usuário abre uma nova instancia do programa (as variaveis do programa, são independentes).
2º - O usuario loga na mesma instancia, como acontece com o windows (assim, vc precisa recarregar as variaveis que guardam informações de cada usuario).
                
            1º - O usuário abre uma nova instancia do programa (as variaveis do programa, são independentes).
2º - O usuario loga na mesma instancia, como acontece com o windows (assim, vc precisa recarregar as variaveis que guardam informações de cada usuario).
                    @@@@@@@@ é a cabeça da gente gira as vezes, com certos problemas de lógica.
bom primeiro como vc administra o sistema, um banco de dados em um servidor e o um programa em cada máquina?
                
            bom primeiro como vc administra o sistema, um banco de dados em um servidor e o um programa em cada máquina?
                    Boa tarde Marcelo.
Na vdd é meu primeiro sistema a parte(fora da empresa onde trabalho)
Estou montando um form de Administração semelhante ao da empresa que eu trabalho.
São cadastrados usuarios e gravados em um banco de dados.
A idéia seria usar um [Ô]findfirst[Ô] ao logar, e se for true, pega esse registro no banco de dados e vai verificando as permissoes e nao permissoes que esse usuario tem conforme cadastrado por um Admin no form ADM e bloqueando.. coisa bem simples
E o sistema senao me engano serão usados em 3 máquinas diferntes e o servidor irá trabalhar no sistema também.
Ou seja 3 usuarios logados ao mesmo tempo...uma única variavel global para verificar o login, é suficiente?
                
            Na vdd é meu primeiro sistema a parte(fora da empresa onde trabalho)
Estou montando um form de Administração semelhante ao da empresa que eu trabalho.
São cadastrados usuarios e gravados em um banco de dados.
A idéia seria usar um [Ô]findfirst[Ô] ao logar, e se for true, pega esse registro no banco de dados e vai verificando as permissoes e nao permissoes que esse usuario tem conforme cadastrado por um Admin no form ADM e bloqueando.. coisa bem simples
E o sistema senao me engano serão usados em 3 máquinas diferntes e o servidor irá trabalhar no sistema também.
Ou seja 3 usuarios logados ao mesmo tempo...uma única variavel global para verificar o login, é suficiente?
                    Alguem?
                
            
                    Não, veja so, eu aconselharia a fazer o seguinte..  crie 2 tabelas
tabela1 = USUARIOS , onde que vai estar gravado os dados do usuario como por exemplo, nome, endereco, cpf, sei la.. o que vc quiser, crie um campo com nome por exemplo IDCAMPO2 para receber a informação de qual PERFIL é o acesso
tabela2 = CONFIGURACAOACESSO, onde que vai estar gravado os dados de cada rotina, campo como booleano, ou seja, true e false, entao se estiver marcado la como true, voce verifica os acessos como true e habilita o que tiver que habilitar.. vou fazer uma previa para vc..
sub VerificaAcessos
Set
            tabela1 = USUARIOS , onde que vai estar gravado os dados do usuario como por exemplo, nome, endereco, cpf, sei la.. o que vc quiser, crie um campo com nome por exemplo IDCAMPO2 para receber a informação de qual PERFIL é o acesso
tabela2 = CONFIGURACAOACESSO, onde que vai estar gravado os dados de cada rotina, campo como booleano, ou seja, true e false, entao se estiver marcado la como true, voce verifica os acessos como true e habilita o que tiver que habilitar.. vou fazer uma previa para vc..
sub VerificaAcessos
Set
   
RS = DB.OpenRecordset([Ô]SELECT * from UserPermissaoPerfil where CodigoPerfil=[ô][Ô] & txtPerfil.Text & [Ô][ô][Ô])
    txtPerfil.Text = [Ô][Ô] & RS!CodigoPerfil
    With frmPrimeira
        If RS!CadClientes = 0 Then .mnuCadastroCli.Visible = False
   end with
                    Olá , como nosso amigo SAMUKA disse[Ô]O usuário abre uma nova instancia do programa (as variaveis do programa, são independentes). [Ô], você pode criar apenas uma variável  [Ô]varUsuario[Ô], eu acho que sua duvida é se apenas uma variável ira conseguir guardar as informações de 3 maquinas, a resposta é sim , pode criar apenas 1 variável que em cada instância do programa que for aberto ela será unica para ela.
ex: Usurário 1 abre o programa então varUsuario guarda o que vc quiser (varUsuario será apenas do usuario 1)
Usuário 2 abre o programa então varUsuario guarda o que vc quiser (varUsuario será apenas do usuario 2)
deu pra entender um pouco melhor?
     
                
            ex: Usurário 1 abre o programa então varUsuario guarda o que vc quiser (varUsuario será apenas do usuario 1)
Usuário 2 abre o programa então varUsuario guarda o que vc quiser (varUsuario será apenas do usuario 2)
deu pra entender um pouco melhor?
                    Deu pra entender, na vdd era isso que eu tinha em mente o tempo todo, mas queria confirmar com os amigos mais experientes, 
Obrigado galera,
Agr nem sei à quem eu pontuo hehehe vo fechar o olho :P
Abraços
            Obrigado galera,
Agr nem sei à quem eu pontuo hehehe vo fechar o olho :P
Abraços
                        Tópico encerrado , respostas não são mais permitidas
                    
                




