Troca de versão de sistema

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Troca de versão de sistema

Mensagem por leandrolinauer »

Boa tarde a todos.
Gostaria de saber se há alguma forma de fazer o sistema executar automaticamente quando for feito a troca de versão?

Exemplo que já tenho funcionando.

Rodo o sistema e depois de consultado e verificado que tem versão nova e tem que trocar antes de entrar ele entra no codigo abaixo:

Código: Selecionar todos

ShowWait(,,"VERSÃO DESATUALIZADA, atualizando o sistema...")
FErase(wD_IniEXE+"PROGRAMA.OLD")    //exclui o antigo
FRename(wD_IniEXE+"PROGRAMA.EXE",wD_IniEXE+"PROGRAMA.OLD") //renomea o programa atual
CopyFile(wD_Instal+"PROGRAMA.EXE",wD_IniEXE+"PROGRAMA.EXE" ) //copia do servidor o novo
         
ShowMessage(,,"ATUALIZADO COM SUCESSO, FAVOR ACESSAR O SISTEMA NOVAMENTE...",4)

e sai do sistema, fecha.

aí nesta parte eu quero que o sistema ja fechado execute novamente e entre ja com a versão nova., tem como fazer isto?

Um abraço a todos.
:)Pos
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Troca de versão de sistema

Mensagem por leandrolinauer »

Boa tarde a todos.
Consegui, deu certo, eu havia tentando com RUN() mas este nao da certo aí fiz com hb_Openprocess(wD_IniEXE+"PROGRAMAEXE") e deu certo.

Valeu, consegui.
Grato a todos
:xau
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Troca de versão de sistema

Mensagem por fladimir »

Como ficou o código completo poderia postar?

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Troca de versão de sistema

Mensagem por leandrolinauer »

Boa tarde
segue:

Código: Selecionar todos

   lDatePRG:=FileDate(wD_IniEXE+"MEUPROGRAMA.EXE") //pego a data do programa.
   lTimePRG:=FileTime(wD_IniEXE+"MEUPROGRAMA.EXE") //pego a data do programa.
   lSizePRG:=FileSize(wD_IniEXE+"MEUPROGRAMA.EXE") //pego o tamanho do arquivo
   //dados do sistema no servidor
   sDatePRG:=FileDate(wD_Instal+"MEUPROGRAMA.EXE") //pego a data do programa.
   sTimePRG:=FileTime(wD_Instal+"MEUPROGRAMA.EXE") //pego a data do programa.
   sSizePRG:=FileSize(wD_Instal+"MEUPROGRAMA.EXE") //pego o tamanho do arquivo
	
   If wE_Modo=="PRODUCAO".And. (lDatePRG # sDatePRG .Or. lTimePRG # sTimePRG .Or. lSizePRG # sSizePRG )//o programa esta desatualizado  
      ShowWait(,,"VERSÃO DESATUALIZADA, atualizando o sistema...")
      FErase(wD_IniEXE+"MEUPROGRAMA.OLD")    //exclui o antigo
      FRename(wD_IniEXE+"MEUPROGRAMA.EXE",wD_IniEXE+"MEUPROGRAMA.OLD") //renomea o programa atual
      CopyFile(wD_Instal+"MEUPROGRAMA.EXE",wD_IniEXE+"MEUPROGRAMA.EXE" ) //copia do servidor onov
      hb_Openprocess(wD_IniEXE+"MEUPROGRAMA.EXE") //EXECUTA O SISTEMA NOVAMENTE
   EndIf		   
Basta apenas o código acima, o sistema novo trocado é executado.
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Troca de versão de sistema

Mensagem por fladimir »

Obrigado Leandro pelo retorno, mas tenho 2 questões

Em q momento dispara esta rotina?
E como ficam outros terminais q estejam executando o sistema, exemplo 1 lançando nota, outro vendendo etc?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Troca de versão de sistema

Mensagem por leandrolinauer »

Bom dia.
Primeiro tive que colocar todos os sistema LOCAL, ou seja, instalados na máquina, assim cada terminal fica com sua própria execução e atualização.
Não executo mais pela REDE, notei que demora muito mais para o programa abrir e causa muito problema com WIN7 e lentidão nas telas.
Não faço atualização que tenha estruturação de banco de dados, porque isto afetaria a todos de uma só vez, estas faço fora de hora, ainda não bolei algo que ficasse pendurado, aguardando a liberação do banco de dados para que seja feita, quando tem urgência e a filial pode parar aí faço a troca, senão aguardo para fora do horario mesmo.
Não consegui ainda, caso no mesmo terminal esteja com dois programas aberto, neste caso da falha e some com o executável aí tenho que entrar e arrumar manualmente.
Esta rotina é disparada na inicialização do sistema, coloco para verificar toda vez que entro no sistema pelo próprio sistema, ele verifica na pasta do servidor se tem uma versão nova, ou seja, eu atualizo apenas no servidor, depois cada terminal verifica e se atualiza sozinho, alguns demoram mais a fazer a atualização porque esta atendendo, outros menos, pq todos tem que entrar para fazer um a um.
Com o tempo quero aprimorar mais e minha idéia é chegar no seguinte:
-Faço a atualização e coloco na internet para download.
-O servidor na filial verifica constantemente e se tiver nova versão, baixa e se atualiza e se estrutura se necessário e liberado.
-O terminal verifica no servidor e se atualiza, (já implantado e funcionando)

Nestes meio termo, necessito fazer as regras abaixo, que não existe ainda.
-O servidor só se atualiza caso a versão poder estruturar ou não o banco de dados.
-O terminal tbem só se atualiza se estiver livre o programa para fazer, ou seja, apenas um programa na mesma máquina.
-E obrigar os demais sistemas a sairem se for feita a atualização no servidor, caso ainda não se atualizaram.

Bom, detalhadamente funciona desta forma acima descrito.
Tudo de bom, qualquer dúvida, estamos aí.
:)Pos
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Troca de versão de sistema

Mensagem por fladimir »

Obrigado
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder