Oi amigos,
Antes de usar o XHarbour, eu utilizava o Blinker para gerenciamento adequado da memória no Clipper, e quando eu o utilizava, não usava arquivo de overlay e carregava todo na memória, sendo assim eu poderia a qualquer momento atualizar o executável no servidor sem problema, e quando o usuário saia do programa e entrava novamente já estava na nova versão.
No Xharbour já não acontece assim, pelo menos, com as cfg mais disseminadas no forum, se eu tentar atualizar o executável no servidor e algum usuário estiver utilizando o programa não é possível pq o executável está em usom sendo necessário sair todos os usuário que estejam utilizando o programa para atualizá-lo. È possível fazer da mesma forma no XHarbour por meio de alguma configuração específica? Se sim, como fazê-lo?
Agradeço aos amigos que contribuirem.
Programa em XHarbour todo na memória com o executável livre?
Moderador: Moderadores
Programa em XHarbour todo na memória com o executável livre?
Vivendo, Aprendendo e Ensinando!!!
------------------------------------------
" É melhor se arrepender de um erro tentanto acertar do que se lastimar de nunca ter tentado "
------------------------------------------
" É melhor se arrepender de um erro tentanto acertar do que se lastimar de nunca ter tentado "
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Programa em XHarbour todo na memória com o executável livre?
Eu simplesmente renomeio o Executavel que esta em uso (Ex: SISTEMA.EXE ficaria SISTEMA2.EXE) e atualizo com o executavel novo(SISTEMA.EXE), porem para isso funcionar tem privilégios de Adimitrador do windows.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Programa em XHarbour todo na memória com o executável livre?
Olá Frank.
Eu uso de tal forma que nenhum terminal carrega diretamente o executável.
Via um BAT, cada terminal copia o executável do Servidor para o seu HD e o executa. Assim posso atualizar a qualquer momento o programa no Servidor.
Da próxima vez que o terminal abrir o executável estará automaticamente atualizado sem qualquer preocupação da minha parte.
É evidente que existem formas mais sofisticadas, e elas já foram discutidas no Fórum. Basta dar uma pesquisada.
Eu uso de tal forma que nenhum terminal carrega diretamente o executável.
Via um BAT, cada terminal copia o executável do Servidor para o seu HD e o executa. Assim posso atualizar a qualquer momento o programa no Servidor.
Da próxima vez que o terminal abrir o executável estará automaticamente atualizado sem qualquer preocupação da minha parte.
É evidente que existem formas mais sofisticadas, e elas já foram discutidas no Fórum. Basta dar uma pesquisada.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Programa em XHarbour todo na memória com o executável livre?
Outra opção é ter em sua aplicação uma rotina que rode em BackGround, que faça o sistema fehar em todos as estações.
Exemplo eu tenho uma rotina que fica vereficando se o arquivo fecha.txt se encontra se ele achar ele inicia um procedimento de fechar a aplicação.
Coloco no inicio do sistema a função: Iniciar_backGround()
Exemplo eu tenho uma rotina que fica vereficando se o arquivo fecha.txt se encontra se ele achar ele inicia um procedimento de fechar a aplicação.
Coloco no inicio do sistema a função: Iniciar_backGround()
Código: Selecionar todos
Function Iniciar_backGround
nTask1 := HB_BackGroundAdd( {|| Fecha_Auto(15) }, 15000 )
Return Nil
Function Fecha_Auto(vAguarda) // vem por parametro a quantidade de segundos até fechar
if file("update\fecha.txt") // se achar o arquivo que é gerado assim que o sistema acha uma nova versçao no FTP...
Private oDlgHabla:=nil
MsgRun("O Sistema vai Fechar nessa estação em: " +str(vAguarda)+ " Segundos...")
for nI:=1 to vAguarda // quantidade de segundos a aguardar
MilliSec( 1000 )
HW_Atualiza_Dialogo2("O Sistema vai Fechar nessa estação em: "+ STR(vAguarda-nI) +" Segundos...")
next
Fim_Run()
__Quit()
endif
Return
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Re: Programa em XHarbour todo na memória com o executável livre?
Oi gente, agradeço a contribuição de todos.
Amigos Leonardo e Hasse, gostei das postagens de ambos, e vou ver a melhor forma de resolver esse probleminha, agora me questionei bastante o fato de não ter feito um teste relacionado a essa observação tão básica que o nosso amigo Leo falou sobre renomear o executável, nem me toquei de verificar essa possibilidade. Gostei da função em background para verificar atualizações, no entanto concernente a ela pergunto: vc tem algum controle para que, caso o usuário esteja no meio de um cadastro ou uma operação meio longa, ele não seja interrompido no meio do seu trabalho e fiquei informações incompletas no banco de dados?
Agradeço a todos pelas contribuições.
Amigos Leonardo e Hasse, gostei das postagens de ambos, e vou ver a melhor forma de resolver esse probleminha, agora me questionei bastante o fato de não ter feito um teste relacionado a essa observação tão básica que o nosso amigo Leo falou sobre renomear o executável, nem me toquei de verificar essa possibilidade. Gostei da função em background para verificar atualizações, no entanto concernente a ela pergunto: vc tem algum controle para que, caso o usuário esteja no meio de um cadastro ou uma operação meio longa, ele não seja interrompido no meio do seu trabalho e fiquei informações incompletas no banco de dados?
Agradeço a todos pelas contribuições.
Vivendo, Aprendendo e Ensinando!!!
------------------------------------------
" É melhor se arrepender de um erro tentanto acertar do que se lastimar de nunca ter tentado "
------------------------------------------
" É melhor se arrepender de um erro tentanto acertar do que se lastimar de nunca ter tentado "
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Programa em XHarbour todo na memória com o executável livre?
Olá frank_fpc,
Meu unico controle é o timer dos 60 segundos que é o tempo que o usuario tem para salvar e fechar tudo, caso contrario se ele tiver no meio de um cadastro o sistema vai fechar todas as DIALOG pendentes e finalizar o sistema se salvar esse cadastro.
Calculei que um min. é o bastante para ele salvar o que esta fazendo, indepentende onde esteja no meu sistema.
Meu unico controle é o timer dos 60 segundos que é o tempo que o usuario tem para salvar e fechar tudo, caso contrario se ele tiver no meio de um cadastro o sistema vai fechar todas as DIALOG pendentes e finalizar o sistema se salvar esse cadastro.
Calculei que um min. é o bastante para ele salvar o que esta fazendo, indepentende onde esteja no meu sistema.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
