VB6 E ACCESS

RAFALNX 21/06/2012 14:19:05
#404635
Boa tarde,

Estou trabalhando num script para envio de alertas SMS para monitorar alguns equipamentos sendo acessados por telnet.
Estou gravando todas as informações que preciso em um arquivo .mdb, porém não tenho experiência em VB, ACCESS é meu primeiro projeto, então gostaria se possível alguém me ajudar com uma rotina como segue:

If [Ô]SELECT status FROM ordem LIMIT 1[Ô] = Enviando Then
Sleep (30)
[ô]volta para If
Else [Ô]SELECT status FROM ordem LIMIT 1[Ô] = Aguardando Then
[Ô]UPDATE ordem SET status=Enviando[Ô]
[ô]Executa a função de envio do SMS
Sleep (30)
[Ô]DELETE * FROM ordem ORDER BY prioridade ASCS LIMIT 1;[Ô]
End if

Vou tentar explicar:
Se o dado que estiver na coluna [Ô]status[Ô] (limitando a 1a linha) for [Ô]Enviando[Ô], ele deve aguardar 30 segundos e fazer a nova verificação, até ele não mais encontrar essa informação.
Se a informação da coluna [Ô]status[Ô] for [Ô]Aguardando[Ô], então ele deve mudar para [Ô]Enviando[Ô], executar um arquivo .bat (que envia o sms), aguardar 30 segundos (tempo para o envio do SMS) e excluir essa primeira linha..

Não sei se consegui ser claro suficiente, se alguém puder ajudar, fico grato.

Abraço
Rafael
LLAIA 22/06/2012 13:50:03
#404692
Resposta escolhida
Vc diz não ter experiência com VB mas está tentando resolver seu problema. No entanto, seria bom explicar se sua aplicação é multi-usuário ou não, pois do jeito que vc está explicando, não tem necessidade disso. Variáveis poderiam muito bem manter estes estados ([ô]enviando[ô] e [ô]aguardando[ô]), não é necessário usar uma tabela pra lidar com esses estados.

Do jeito que vc descreveu, dá pra usar um Timer que de 30 em 30 segundos é disparado. No evento do Timer verifica o estado de uma variável que se estiver [ô]enviando[ô] faz nada, logo os 30 segundos vão passar. Se estiver aguardando, vc desabilita o Timer, muda o estado da variável para [ô]enviando[ô], executa os bats (seria bom se conseguíssemos rodar de modo síncrono, aguardando o fim da execução dos bats), muda o estado da variável para [ô]aguardando[ô].
LLAIA 25/06/2012 14:29:12
#404840
Dê uma olhada nesse tópico e no anexo que coloquei lá. Acho que vai te ajudar.

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=404828
RAFALNX 26/06/2012 10:06:36
#404892
Opa,

Acho que estou conseguindo fazer o que necessito, preciso uma dica quanto a atualizar e excluir dados do DB access.

Primeiro, preciso atualizar apenas um campo da primeira linha da tabela Ordem.
UPDATE ordem SET status=Enviando LIMIT 1 // também tentei com TOP 1 e mesmo assim não funciona.

Segundo, preciso também após efetuar algumas funções, excluir toda essa primeira linha
DELETE * FROM ordem ORDER BY prioridade LIMIT 1

(VB6 e ACCESS)

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