psydack 0 Denunciar post Postado Outubro 4, 2010 Olá, sou novo aqui no fórum mas já acompanho faz um tempo o trabalho da galera. Sempre gostei das respostas, curtas e diretas. =) Bom ai vai um questão, pode parecer simples mas faz uma semana que procuro e não acho a solução. Não vou entrar com dados técnicos aqui porque é indeferente seu uso. Bom vamos lá, precisava de uma "FUNCAO" no MYSQL que verificasse de tempos em tempos (por exemplo: a cada 10 segundos, uma hora, etc) duas colunas de uma tabela. Ex: Imaginando que agora são 1h da madrugada e nosso relógio do bd use padrão 24h. ---------------TABLE : GOL-------------------------- ---------------------------------------------------- IDGOL---HORA_COMECA------HORA_ACABA---------STATUS 1-------------00:00:00---------------00:10:00-----------FINALIZADO 2-------------01:00:00---------------02:00:00-----------ABERTO 3-------------02:00:00---------------12:00:00-----------AGUARDANDO ABERTURA --------------------------------------------------------------- Como podem ver o id 1 está FINALIZADO já são 1h da manhã. O id 2 está rolando normal porque começou 1h e ainda falta 1h pra acabar. O id 3 está esperando chegar as 2h da manhã para mudar o STATUS para ABERTO E FINALIZAR O ID 3. Mas como seria possivel fazer um script rodar direto no servidor para fazer estas verificações? Tenso. Ficaria muito grato à todos que pararem para pensar comigo. =) abraços;) Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 5, 2010 Não entendi muito bem seu objetivo, alias, entendi, mas não vi a prática. Você tem a hora do servidor que pode ser comparada com a hora que esta armazenada na tabela, desta forma, se esta hora for menor que a data de inicio, seu status é AGUARDANDO, se estiver entre o inicio e o término, o status é ABERTO, e se for maior que o término, o status é FECHADO. De fato o MySQL gratuito por si só não possui recurso para agendamento de tarefas, para obter o comportamento que você deseja seria necessário um recursos externo ao MySQL, como o crontab do Linux. Compartilhar este post Link para o post Compartilhar em outros sites
psydack 0 Denunciar post Postado Outubro 5, 2010 Uhm, o objetivo é simples. Imagina um sistema de compras que eu tenho várias ofertas só qeu cada uma com data de inicio e data de término. Só que eu não imaginei a técnica usada. Não sei se seria possível em um sistema gerenciado por terceiro, como uolhost por exemplo. Vou procurar sobre este "crontab". Mas acredito que o servidor seja windows. =) Obrigado pela resposta. =) Vou pesquisar mais. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 5, 2010 A coluna STATUS não precisa ser real, pode ser calculada com base na data/hora inicial , data/hora inicial e a data do sistema. +ou- select .... , (case when [data do sistema] < [data/hora inicial] then 'AGUARDANDO ABERTURA' when [data do sistema] between [data/hora inicial] and [data/hora final] then 'ABERTO' when [data do sistema] > [data/hora final] then 'FINALIZADO' else 'ERRO' END) from .... Compartilhar este post Link para o post Compartilhar em outros sites
psydack 0 Denunciar post Postado Outubro 5, 2010 A coluna STATUS não precisa ser real, pode ser calculada com base na data/hora inicial , data/hora inicial e a data do sistema. +ou- select .... , (case when [data do sistema] < [data/hora inicial] then 'AGUARDANDO ABERTURA' when [data do sistema] between [data/hora inicial] and [data/hora final] then 'ABERTO' when [data do sistema] > [data/hora final] then 'FINALIZADO' else 'ERRO' END) from .... Sim essa é a idéia, mas vai rodar onde? Trigger? SP? O problema em questão é: como vou rodar uma "TRIGGER" a cada 10 segundos? Mas valeu pela proposta. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 5, 2010 Triggers são objetos que tem seu código disparado qiando ocorre alguma operação na tabela, insert por exemplo, não se aplica neste caso. Não precisa atualizar a coluna, pela query se sabe o status. O que você precisar é dar um refresh na query de tempos em tempos, isto depende de como a aplicação foi feita, creio se r este o problema finalmente. Compartilhar este post Link para o post Compartilhar em outros sites
psydack 0 Denunciar post Postado Outubro 5, 2010 Triggers são objetos que tem seu código disparado qiando ocorre alguma operação na tabela, insert por exemplo, não se aplica neste caso. Não precisa atualizar a coluna, pela query se sabe o status. O que você precisar é dar um refresh na query de tempos em tempos, isto depende de como a aplicação foi feita, creio se r este o problema finalmente. Exatamente motta. A aplicação é em web =). Estou ferrado, né?! Qualquer solução é bem vinda em qualquer linguagem. Acha que devo mover o tópico ou está no lugar certo? Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Outubro 5, 2010 O que estamos querendo dizer, desde o primeiro POST é que não se faz necessário o uso de qualquer um desses recursos para obter o compotamento desejado. Independente de refresh da página, um simples comando SELECT, como no exemplo do Motta, pode solucionar seu problema. Se quiser detalhar melhor o cenário... Compartilhar este post Link para o post Compartilhar em outros sites
VascoDaGama 2 Denunciar post Postado Outubro 6, 2010 verdade.. nao faz muito sentido. pelo que entendi está tentando aplicar uma especie de VIEW numa SP Compartilhar este post Link para o post Compartilhar em outros sites