Fórum Clock do Servidor #185269
30/09/2003
0
Grato
Joselito Nascimento
www.jjnascimento@bol.com.br
Joselito Nascimento
Curtir tópico
+ 0Posts
30/09/2003
Mmtoor
tive um problema similar em um sistema que desenvolvi e, pensando nume forma de descobrir isso, decidi criar um contador e gravar o resultado no BD.
Inseri um timer no form e criei uma tabela com a seguinte estrutura:
codigo = chave, data, hora, horaabre e contador.
Dessa forma fica mais fácil, pois cada incremento no contador se dá a cada segundo (1000 no timer). Assim sendo, posso, por uma query, varrer a tabela verificando alterações e/ou fazer o cálculo dos segundos para saber se houve algum tipo de alteração.
o campo horaabre marca a data e a hora no evento onshow do form.
Dai me perguntaram o seguinte: E se atrasarem o relógio antes de abrir o sistema:
Analisei o que havia criado e percebi que pelo cálculo de segundos no contador é possível verificar isso do seguinte modo: Cada vez que o sistema abre ele verifica o último número gravado no contador, pega a hor atual e incrementa o número de contadores necessários para preencher a tabela, como se o sistema não tivesse sido fechado.
Dai, pelo contador, dá pra saber a veracidade do clock no sistema.
Acho que deu pra explicar. Me desculpe se não soube explicar de forma mais clara.
MMTOOR2003
Gostei + 0
01/10/2003
Hegs
select Convert(char(2),datepart(hh,getdate()))+´:´+Convert(char(2),datepart(mm,getdate()))+´:´+Convert(char(2),datepart(ss,getdate()))
Será retornado: 11:7:32
Gostei + 0
01/10/2003
Fava
Em versões anteriores ao IB6:
select
cast(´today´ as date), /*zero in the time portion*/
cast(´yesterday´ as date), /*zero in the time portion*/
cast(´tomorrow´ as date), /*zero in the time portion*/
cast(´now´ as date) /*date plus time*/
from rdb$database
No IB6-dialect1:
select
cast(´today´ as date), /*zero in the time portion*/
cast(´yesterday´ as date), /*zero in the time portion*/
cast(´tomorrow´ as date), /*zero in the time portion*/
cast(´now´ as date), /*date plus time*/
current_timestamp /*date plus time*/
from rdb$database
No IB6-dialect3:
select
cast(´today´ as date), /*date-only field*/
current_date, /*date-only field*/
cast(´yesterday´ as date), /*date-only field*/
cast(´tomorrow´ as date), /*date-only field*/
cast(´now´ as timestamp), /*date plus time*/
current_timestamp, /*date plus time*/
current_time /*time-only field*/
from rdb$database
Gostei + 0
02/10/2003
Dedi
ao Iniciar o aplicativo:
WinExec(NET TIME \\IP DO SERVIDOR /SET /YES, SW_HIDE); if FileExists(´C:\windows\system\Timedate.cpl´)then RenameFile(´C:\windows\system\Timedate.cpl´,´C:\windows\system\Timedate.pow´);
Isso dificulta a fraude;mas não impede,já que o funcionário poderá modificar via dos.
Obs: pegar hora do servidor quando for registrar o horário é uma ideia interessante,na pratica torna-se inviavel por tornar a aplicação muito lenta a não ser nos casos acima com uso do Ib......e o contador que merece uma atenção bem maior.
Dedi.
Gostei + 0
02/10/2003
Fava
insert into registroponto matricula, horario value :matricula, current_time
Se o usuário xunxar a hora do micro é problema dele pois o que está sendo registrado é a hora do servidor.
Isto jamais deixará sua aplicação mais lenta.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)