AJUDA COMPREENSAO DO PROCESSO

BORBOLETATY 06/12/2010 09:21:21
#358879
Bom dia meus amiguinhos, tudo bem com voces? final de semana tudo legal? rsrs, amigos, estou com uma duvida aqui e nao sei o que vou fazer, vejam so, Trabalho com banco de dados MYSQL, e tenho um sistema de registro de ocorrencias, entao o que eu preciso fazer, uma ocorrencia, é registrada no dia e na hora, e ela sempre abre com status [Ô]Pendente[Ô], ai quando o colaborador pega ela para resolver, ele vai manipulando tendo entao os seguintes status... [Ô]Pendente[Ô], [Ô]Analisando[Ô], [Ô]Concluida[Ô], [Ô]Aguardando[Ô], o que eu queria fazer, vamos supor que a ocorrencia foi registrada dia 06/12/2010 as 8:00 hrs da manha, eu iria ter um outro sistema a parte para pegar essa ocorrencia em 20 minutos se ninguem desse retorno e disparar a mesma por email, eu ja sei como enviar o email com os dados da mesma, agora eu preciso mesmo é so da query, estava pensando em deixar um timer ativado e a cada segundo o mesmo ir contando o tempo da ocorrencia, mas como eu vou fazer essa query obedecendo o prazo de 20 minutos considerando a data e a hora como citado acima? desde ja agradeço muito a atenção.!!!
LLAIA 06/12/2010 10:58:06
#358891
olha eu não uso MYSQL, portanto não sei a sintaxe que poeria ser usada, mas creio que possa ser feito assim:

vc pode usar um timer que a cada um minuto ou num intervalo maior (pra evitar sobrecarga no server caso a tabela seja muito grande), fazer um select com os dados que vc quer e uma das condições na cláusulla WHERE seria a diferença dos minutos entre o (instante atual - hora registrada no BD para a ocorrência) > 20

vc vai precisar ver como verificar os minutos de um campo Date.
FEDERHEN 06/12/2010 11:26:10
#358893
Use o componente Timer1 com a propriedade Interval=60000 (isso corresponde a mais ou menos 1 minuto)
Cada vez que o Timer1 for acionado, você incrementa uma variavel, somando o valor 1 (exemplo: variavel = variavel + 1)
Quando variavel=20 você executa o select e atribui variavel=0


FEDERHEN 06/12/2010 16:03:24
#358922
Coloque o componente Timer no form que irá rodar o envio dos emails,
e o código abaixo:

Public Contador As Integer

Private Sub Form_Load()
Contador = 0
Timer1.Interval = 60000
Timer1.Enabled
End Sub

Private Sub Timer1_Timer()
Contador = Contador + 1
If Contador = 20 Then
Contador = 0
SQL = [Ô]Select * From Tabela where status = [ô]pendente[ô][Ô]
Set RS = CNN.Execute(SQL)
If RS.EOF = False Then
[ô]aqui disparar o email
End If
End If
End Sub
XXXANGELSXXX 28/12/2010 08:40:03
#360510
Resposta escolhida

Dim sCont As Integer
dim sSql as string
Private Sub Form_Load()
sCont = 0
Timer1.Interval = 60000
Timer1.Enabled=true
End Sub

Private Sub Timer1_Timer()
sCont= sCont + 1
If sCont = 20 Then
sCont = 0
set rsCont = new adodb.recordset
sSQL = [Ô]Select campotabela from tabela where status = [ô]pendente[ô] [Ô]
rsCont.open sSQL,Conexao,adOpenDynamic, adLockBatchOptimistic
If rsCont.EOF = False Then
Coloque sua rotina para enviar email daqui.
End If
End If
End Sub

Tópico encerrado , respostas não são mais permitidas