Concordo , porêm, não deixaria o sistema mais lento ??Maligno escreveu:Se bem que esse procedimento, numa rede grande, adiciona muita dificuldade na hora de atualizar os vários .EXEs espalhados pelas extensões.ederxc escreveu:Lucimauro , no seu caso fica bom se o .EXE estiver no servidor , em uma rede muito extenção com muitos acessos ao servidor creio que seja mais "coerente" deixar um .EXE para cada maquina e passar uma String como parametro para os DBF´s
Nome maquina /ou IP
Moderador: Moderadores
Editado pela última vez por ederxc em 08 Jan 2008 11:39, em um total de 1 vez.
C:\Xharbour\Xdev\Fw\VSX
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Esta indicação é a mais acertada para o caso de ser apenas UM executável na rede e não como foi mencionado em outros tópicos inclusive que seria conveniente instalar todos os executáveis do sistema para cada estação. E acho que é isso ao que o Maligno se referia. Até agora eu não tive oportunidade de avaliar o gango que se obtem através de execução de executáveis nas estações. Mas se o seu caso for assim, é como o colega disse, você precisa cadastrar o nome da estação (se quiser o IP dessa máquina e o usuário caso este seja fixo) para que identifique quem é o servidor. Mas em resumida, não sei se o ganho é considerável (me refiro a instalar executáveis em cada estação). EU partiria um executável no servidor e aplicar a lógica que o colega Lucimauro indicou (eu já faço isso e funciona beleza).lucimauro escreveu:voce quer indentifcar o servidor certo. voce pode usar: if left(execname(),1)==[C] indentifica o servidor
Editado pela última vez por Pablo César em 08 Jan 2008 20:36, em um total de 1 vez.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Confesso que também não gosto da idéia, aliás causaria lentidão apenas no inicio. Depois que o exe foi carregado na memoria do terminal, já elvis ! Já pensou a peregrinação que vc deverá fazer para atalizar o sistema de uma loja com 30 terminais. Com certeza vai esquecer um ou dois.
Mas mesmo assim, peço licença para o Janio para mostrar sua idéia. Interessante apesar de eu não usar.
Arquivo batch
@ECHO OFF
xcopy J:\Frango.exe /r /y /d C:\JanioSys
C:\JanioSys\Frango.exe
Mas mesmo assim, peço licença para o Janio para mostrar sua idéia. Interessante apesar de eu não usar.
Arquivo batch
@ECHO OFF
xcopy J:\Frango.exe /r /y /d C:\JanioSys
C:\JanioSys\Frango.exe
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Depende. Mesmo que a quantidade de estações seja muito grande, normalmente a carga do programa é feita uma vez só e nem sempre todos de uma vez. Pode até acontecer de gerar um congestionamento na rede, mas numa rede de 100Mbps não seria o fim do mundo. Mas vai de cada caso. Pra mim nunca teve problema. Mantenho um EXE só.ederxc escreveu:Concordo , porêm, não deixaria o sistema mais lento ??Maligno escreveu:Se bem que esse procedimento, numa rede grande, adiciona muita dificuldade na hora de atualizar os vários .EXEs espalhados pelas extensões.ederxc escreveu:Lucimauro , no seu caso fica bom se o .EXE estiver no servidor , em uma rede muito extenção com muitos acessos ao servidor creio que seja mais "coerente" deixar um .EXE para cada maquina e passar uma String como parametro para os DBF´s
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
No meu caso particular, acho mais acertado um EXE só. Quando há alteração, se o usuário na estação for fazer a carga, o programa pode ser bloqueado por ele próprio, após a verificação de uma atualização em andamente. Se a alteração chega quando o programa já está carregado, o programa também sabe que uma alteração chegou e, conforme o caso, pede pro usuário encerrar e aguardar. Semáforos. Sabe como é.ederxc escreveu:Maligno como voce faz , o que sugere ? :|<
Uso um só EXE, mas conforme o que o futuro me apresentar, posso mudar para um EXE em cada estação. Em programas Windows normalmente você precisa instalar um run-time qualquer em cada estação. Dependendo da situação (avaliada na hora), poderia ser mais interessante instalar um EXE em cada máquina. Ai, claro, o esquema de atualização precisa ser refeito pra evitar o incômodo de ter que ir de estação em estação.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Alaminojunior,alaminojunior escreveu:Mas mesmo assim, peço licença para o Janio para mostrar sua idéia. Interessante apesar de eu não usar.
Arquivo batch
@ECHO OFF
xcopy J:\Frango.exe /r /y /d C:\JanioSys
Start C:\JanioSys\Frango.exe
Esse esquema funciona muito bem para quem utiliza o EXE em cada estação. O .bat verifica se há no servidor um EXE com data mais atual do que aquele que está na estação. Se houver, faz a cópia automática, muitas vezes sem que o usuário perceba. Assim, vc pode ter uma rede com quantas estações quiser e TODAS estarão com o EXE mais atual.
Um outro incômodo que há para quem utiliza o EXE somente no servidor é no caso de ter que colocar alguma versão mais recente no servidor e ter que ficar pedindo para TODOS os usuário saírem do sistema para que o executável do servidor possa ser substituído. Tem usuário que xia pra danado!
Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Tem razão. Isso é muito chato mesmo. Mas note que se você usar alguns semáforos, seu programa pode tratar disso automaticamente; podendo, inclusive, "arrancar" o usuário na marra. A idéia é apenas se sentar numa estação, configurar esses semáforos com uma mensagem de alerta e um tempo limite para o infeliz sair do programa. Finado o tempo, seu sistema pode "arrancar" o sujeito, dependendo, claro, da prioridade do serviço que ele estiver realizando. E também com a ajuda de semáforos, se o usuário sair do sistema, ele não pode voltar mais, enquanto você não autorizar, também através de semáforos.janio escreveu:ter que ficar pedindo para TODOS os usuário saírem do sistema para que o executável do servidor possa ser substituído.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
É... essa é realmente uma alternativa.
o SO não deixa que o EXE em uso seja SUBSTITUÍDO, mas deixa que seja RENOMEADO. Legal!
Jânio
o SO não deixa que o EXE em uso seja SUBSTITUÍDO, mas deixa que seja RENOMEADO. Legal!
Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Pensei que não daria para fazer isso enquanto alguém estiver executando o programa antigo. Será que isso de renomeiar durante alguém estiver executando-o na rede, não daria lagum tipo de problema ?sygecom escreveu:quando vou atualizar apenas renomeio o EXE que esta em USO de "SISTEMA.EXE" para "SISTEMA2.EXE" e atulizo com o novo.
Sei que quando chamamos um executável, é carregado na memória (completo ou parcial) do binário daquele arquivo. Caberia saber se carrega completamente ou parcial a instrução do executável. Se for parcial, acho que tem grandes chances de ocorrer algum erro inesperado.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Vish, o tópico ficou bem produtivosygecom escreveu:Sem problema algum ! uso isso e varios clientes que tem REDE com mais de 20 micros e até hj não tive problemas...o que não pode é deletar esse arquivo renomeado....mas enganar o windows .... ISSO PODYYYYYYY.....
Isso tambem póóódyyyy
C:\Xharbour\Xdev\Fw\VSX
-
MARCELOG
- Usuário Nível 4

- Mensagens: 546
- Registrado em: 15 Mar 2005 16:54
- Localização: Divinópolis/MG
Bem, proveitoso o tópico foi mesmo.
Mas relativamente ao problema inicial, acho que não é difícil resolver.
Nos meus sistemas, quando usava dbf (é que tô ficando chique, agora é mysql), abria todos os arquivos necessários a utilização do sistema numa tacada só.
Então, tentava usar os arquivos em modo exclusivo.
Se conseguisse, seja no servidor ou terminal, fazia a indexação uai.
Depois, liberava os arquivos abertos em modo exclusivo e reabria os mesmos no modo compartilhado.
Se o arquivo não pudesse ser usado de forma exclusiva é porque alguém estava usando o mesmo no modo exclusivo ou compartilhado.
Então, se usado no modo exclusivo, estava sendo feita a atualização dos índices.
Caso contrário, ou seja, compartilhado, a atualização já tinha sido feita pelo primeiro usuário ou usuário ativo.
Quanto a criação do DB(F) é simples.
É só testar a sua inexistência e criar o mesmo.
MarceloG
Mas relativamente ao problema inicial, acho que não é difícil resolver.
Nos meus sistemas, quando usava dbf (é que tô ficando chique, agora é mysql), abria todos os arquivos necessários a utilização do sistema numa tacada só.
Então, tentava usar os arquivos em modo exclusivo.
Se conseguisse, seja no servidor ou terminal, fazia a indexação uai.
Depois, liberava os arquivos abertos em modo exclusivo e reabria os mesmos no modo compartilhado.
Se o arquivo não pudesse ser usado de forma exclusiva é porque alguém estava usando o mesmo no modo exclusivo ou compartilhado.
Então, se usado no modo exclusivo, estava sendo feita a atualização dos índices.
Caso contrário, ou seja, compartilhado, a atualização já tinha sido feita pelo primeiro usuário ou usuário ativo.
Quanto a criação do DB(F) é simples.
É só testar a sua inexistência e criar o mesmo.
MarceloG
Água mole em pedra dura tanto bate que até espirra!


