Entretanto, para evitar que o cliente seja surpreendido com uma atualização no meio de alguma atividade (digitação, impressão, etc.), optei por apenas avisar de que a base de dados estava desatualizada.
Todavia, gostaria que o momento de ociosidade do sistema fosse utilizado para realizar a tarefa.
Alguém conhece algum procedimento ou API que pode de retornar a informação de que o sistema está ocioso.
É até engraçado já que, quando efetuar essa consulta o sistema não vai estar ocioso né!
Obrigado.
MarceloG
/*
Tipo....: PROCEDURE
Nome....: MYTIMER
Objeto..: Informar sobre base de dados desatualizada.
Retorno.: Nenhum.
Detalhe.: SHOW TABLE não funciona porque o campo UPDATE da tabela não é atualizado quando ocorre atualização, mas somente inclusão.
*/
Código: Selecionar todos
STATIC PROCEDURE MYTIMER()
LOCAL cQuery, oQuery
STATIC dUpdate := ''
cQuery := 'SELECT MAX(ASSINATURA) FROM TABELA' // "SHOW TABLE STATUS LIKE 'TABELA'"
oQuery := oServer:QUERY(cQuery)
IF oQuery:NETERR()
MSGSTOP(cQuery+CRLF+;
ALLTRIM(STR(oQuery:ERRORNO()))+CRLF+;
oQuery:ERROR())
oQuery:DESTROY()
RETURN
ENDIF
IF EMPTY(dUpdate)
dUpdate := oQuery:GETROW(1):FIELDGET(1)
ENDIF
IF dUpdate # oQuery:GETROW(1):FIELDGET(1)
PRC.LBL1.SHOW // Avisa cliente
dUpdate := oQuery:GETROW(1):FIELDGET(1)
ENDIF
RETURN

