LOGIN E SENHA COM LOG

RICOCARDOZO 23/06/2010 19:28:46
#345616
Olá a Todos
Estou fazendo uma tela de login onde tenho uma tebela que se chama TB_PERMISSAO.
dentro dela tenho campos :
USUARIO
SENHA
DATA
HORA
ACOES

é o seguinte
Ja fiz toda a a parte de login e senha agora queria que ao momento que o cara entrar com a senha e o login corretos ele grave no campo (DATA) a data atual (HORA) a hora atual e (ACAO) eu queria registrar tipo conectado e assim sucessivamente conforme o cara incluir ele registra , exclui ele registra.
Como um log.

Meu código ta assim:
Tabelalogin
TB_PERMISSAO.LockType = adLockOptimistic
TB_PERMISSAO.CursorType = adOpenStatic [ô]somente leitura
TB_PERMISSAO.CursorLocation = adUseServer
TB_PERMISSAO.Open [Ô]SELECT * FROM TB_PERMISSAO WHERE USUARIO=[ô][Ô] & Trim(Tusuario.Text) & [Ô][ô][Ô], BD_CAIXA
If TB_PERMISSAO.EOF = True Then
Lstatus.Caption = [Ô]Este login não está cadastrado[Ô]
Tusuario.Text = [Ô][Ô]
Tusuario.SetFocus
Else
With TB_PERMISSAO
.MoveFirst
If !SENHA = Trim(Tsenha.Text) Then
Unload Me
Principal.Show
Else
Lstatus.Caption = [Ô]Esta Senha não confere[Ô]
Tsenha.Text = [Ô][Ô]
Tsenha.SetFocus
End If
End With
End If
FechaTabelalogin


Obs . será que teria que estar em um modulo?
TECLA 23/06/2010 20:20:50
#345620
Se me permite, por que não faz a validação dentro da QUERY SQL?
Sua aplicação ganhará em segurança e performance em tempo de execução.
RICOCARDOZO 23/06/2010 20:22:12
#345622
Como??
TECLA 23/06/2010 20:29:37
#345626
Segue um exemplo:

TB_PERMISSAO.LockType = adLockOptimistic
TB_PERMISSAO.CursorType = adOpenStatic
TB_PERMISSAO.CursorLocation = adUseServer
TB_PERMISSAO.Open [Ô]SELECT * [Ô] & _
[Ô]FROM TB_PERMISSAO [Ô] & _
[Ô]WHERE USUARIO=[ô][Ô] & Trim(Tusuario.Text) & [Ô][ô] [Ô] & _
[Ô]AND SENHA=[ô][Ô] & Trim(Tsenha.Text), BD_CAIXA
If TB_PERMISSAO.EOF = True Then
Lstatus.Caption = [Ô]Login/Senha inválida.[Ô]
Tusuario.SetFocus
Else
Unload Me
Principal.Show
End If


Tente aí!
RICOCARDOZO 24/06/2010 08:30:18
#345646
Beleza realmente fica mai enxuto..
Mais quanto a inclusão , que o cara conectou a hora/data , seria melhor fazer em um outro select?
ou dá pra fazer junto.
JOAOBENEVIDES 24/06/2010 08:50:36
#345650
Resposta escolhida
eu faria assim apos fazer o login eu inseria o usuario
insert into sua tabela (usuario,dataehora)value (Tusuario.Text,data)

isto faria que toda vez que um usuario entrar no sistema ele ira gravar numa tabela o codigo do usuario e hora que ele entrou

Obrigado
JMANGAS 24/06/2010 08:59:45
#345651
RICOCARDOZO,

Eu colocaria em um módulo como uma função, e a cada evento dentro do sistema (login, alteração,inclusão, exclusão e etc..) passaria por parâmetro data, hora, usuario, ocorrencia (onde descreveria o processo que originou). Assim teria um mapeamento do que ocorreu no sistema......

E caso tenha muita ocorrência na base ou necessidade de tempos em tempos uma telinha onde [Ô]Expurgaria[Ô], o passado para não encher muito a base. Mantendo assim um histório do sistema.

Att.
José Antonio

RICOCARDOZO 24/06/2010 09:27:16
#345656
Pois é eu pensei nisso, criar uma funçao que carregue os ultimos 100 registros e delete o resto pra não ficar muito carregado o bd.
A principio queria algo só para registrar o login e logout, mais analisando isto pode ser muito util tanto para o proprietario do sistema quanto pra mim , caso ocorra algum erro poderei saber a ultima acão do usuário e ver o porque do erro.
JMANGAS 24/06/2010 09:33:04
#345659
RICOCARDOZO,

Assim, como, vc poderá auditar o sistema e o bd de saida do [Ô]expurgo[Ô], ser feito por uma tela onde vc informa o mes/ano e o nome do arquivo de saída seria [Ô]TRAB_MESANO.mdb[Ô].


Att.
LUIS.HERRERA 24/06/2010 09:59:02
#345667
Ricardo é isso mesmo. Só não aconselho você excluir os registros pois dois motivos:

1- perderia o histórico, já que se for fazer uma [Ô]Varredura[Ô] retroativa, alguém dizendo que não fez nada e fez, não teria como comprovar.
2- Não vi em que banco está usando, mas se for access a exclusão não limpa o banco, só marca os registros como excluídos sendo que o tamanho dele fica igual. Para limpar e reduzir o tamanho do Db, teria de usar o reparar/compactar, só que isso as vezes não funciona em alguns servidores. Já tentei dar manutenção em clientes com scripts SQL para criar campos e tabelas, mas tive vários problemas em alguns clientes, gerando erro na execução. Não consegui descobrir porque, já que algumas pessoas de TI não querem colaborar. Como não tinha acesso aos servidores (até por estarem em estados distantes), a solução foi solicitar o DB e fazer as mudanças no meu micro, enviando depois por email ao cliente.

Sendo assim acho o mais indicado deixar os registros gravados, o que você pode fazer é criar um db para cada ano. Isso é fácil, basta ter um DB vazio de modelo. Quando virar o ano, você fecha o anterior, copia o modelo com nome do novo ano ex: dbhist2011.mdb e passa a usá-lo no sistema. com um form de administração, poderia escolher o ano que gostaria de consultar, assim tendo acesso a todos os db e nunca teria um que ficasse muito grande ao ponto de ultrapassar o limite dele.

Porém cuidado, tem que avaliar o volume de ações e acessos, além dos usuários, para projetar o tamanho dele ao longo de um ano.
Tópico encerrado , respostas não são mais permitidas