Sim entendi perfeitamente. Acredite, tinha isso e era o maior problema.
Não tenho EXE no Windows Explorer para o cliente procurar e clicar. O 
sistema faz sozinho.
Como falei existe um programa que roda em background, update.exe. Ele é 
chamado automaticamente pelo próprio módulo. O cliente não faz nada, só 
clica em Sim quando recebe a mensagem que o sistema precisa ser 
atualizado. Só. Daqui a alguns dias a pergunta será retirada e o sistema 
será atualizado automaticamente.

Qualquer usuário na rede baixa os módulos do meu site e abre ao menos 
uma vez o módulo, pronto. Todo mundo tah atualizado. Não preciso criar 
uma bat para cada cliente, não preciso mapear unidade de rede, não 
preciso pedir pra sair do sistema e nem preciso pedir pra clicar em atalho.

Hoje, como falei, reduzi o número de problemas quase zero. Agora estou 
finalizando a atualização on-line. Falo os resultados depois.

[]s

Adriano



Marcos Douglas respondeu:
>
> Adriano,
> A letra "Z" foi apenas como exemplo. Claro que cada um deve adaptar o 
> BAT de
> acordo com a empresa na qual trabalha, certo? ;-)
>
> Eu já havia falado que é pra colocar um Atalho do BAT no Desktop do 
> usuário.
> Todos os usuários iriam clicar diretamente no Atalho ao invés de ir 
> procurar
> o EXE no Windows Explorer...
> Fazendo dessa forma, não é preciso técnico algum.
>
> Abraços
> mD
>
> On 1/8/08, Adriano Santos (Yahoo) <[EMAIL PROTECTED] 
> <mailto:falecom%40adrianosantos.pro.br>> wrote:
> >
> > Ótimo.
> >
> > E se a letra Z: não existir ou foi mapeada com outra letra?
> > E se o usuário não abrir o BAT, terá que colocar no inicializar do
> > Windows?
> >
> > Se você enviar um técnico ao local beleza, pois ele se encarrega de ir
> > máquina a máquina checar, mas se tiver clientes em Manaus por exemplo,
> > fica difícil ter certeza que o usuário fez tudo bonitinho como manda a
> > figurino.
> >
> > Tínhamos BAT e o deploy era problemático. Hoje temos esse esquema. Os
> > bancos de nossos clientes cresceram 20 mb, porém reduzi o número de
> > problemas para 10%, pois ainda não temos um esquema para atualização
> > on-line.
> >
> > Estamos montando um programinha bem pequeno que fará o download dos
> > módulos em uma pasta temporária e em seguida atualiza o banco do
> > cliente. Esse utilitário funcionará sozinho sem interação com o usuário.
> > Automaticamente a próxima vez que alguém entrar no sistema o mesmo será
> > atualizado. 100% de problemas resolvidos.
> >
> > Adriano Santos
> > ----------------------------------------------------------
> > Editor Técnico Revista ClubeDelphi
> > www.delphitodelphi.blogspot.com
> > www.devmedia.com.br
> > www.devmedia.com.br/clubedelphi/pagina.asp
> >
> >
> >
> >
> > Marcos Douglas respondeu:
> > >
> > > Adriano,
> > > Uma forma mais fácil de fazer isso é com um arquivo BAT:
> > > @echo off
> > > xcopy z:\sistema.exe c:\sistema /d /Y
> > > start c:\sistema\sistema.exe
> > > exit
> > >
> > > É só criar um atalho para o usuário usar o BAT e não clicar 
> diretamente
> > no
> > > EXE.
> > >
> > > Darkzad,
> > > Para enviar uma mensagem ao usuário, é só você comparar os 
> arquivos (do
> > > servidor com o da máquina local) assim:
> > > if FileAge('z:\sistema.exe') > FileAge('c:\sistema\sistema.exe') then
> > > // mensagem ao usuário com um form Modal avisando para atualizar o
> > > sistema...
> > >
> > > PS: Considerei o driver Z: como sendo o servidor mapeado.
> > >
> > > Abraços
> > > Marcos Douglas
> > >
> > > On 1/8/08, Adriano Santos (Yahoo) <[EMAIL PROTECTED] 
> <mailto:falecom%40adrianosantos.pro.br>
> > > <mailto:falecom%40adrianosantos.pro.br>> wrote:
> > > >
> > > > Darkzad,
> > > >
> > > > Posso dar outra sugestão?
> > > > Cara, criei um método de atualização que ficou infalível aqui. Olha
> > só:
> > > > Criei uma tabela no banco chamada ATUALIZACOES conforme abaixo:
> > > >
> > > > CREATE TABLE ATUALIZACOES (
> > > > ID INTEGER NOT NULL,
> > > > NOME VARCHAR(30),
> > > > VERSAO INTEGER,
> > > > ARQUIVO BLOB SUB_TYPE 0 SEGMENT SIZE 80 NOT NULL
> > > > );
> > > >
> > > > E os registros na base ficam assim:
> > > >
> > > > FROTA.EXE | 6.150 | ????
> > > > OPERACAO.EXE | 6.149 | ????
> > > > COBRANCA.EXE | 6.127 | ????
> > > >
> > > > Quando o sistema abre ele faz uma select no banco usando o nome do
> > > > módulo (Operacao.exe, Frota.exe, Cobranca.exe). Nada como um
> > > > ExtractFileName não resolva. Feito isso verifico se a versão do
> > sistema,
> > > > prevista em uma variável global, é inferior ou superior a que 
> está no
> > > > banco.
> > > >
> > > > Se for inferior, faço um "download" do arquivo atualizado puxando
> > > > diretamente do banco de dados. Use:
> > > > QueryCAMPO_ARQUIVO.SaveToFile(ExtractFilePath(Application.ExeName));
> > > >
> > > > Se o módulo (na variável global) for superior, então faço o upload
> > para
> > > > o banco usando:
> > > > 
> QueryCAMPO_ARQUIVO.LoadFromFile(ExtractFilePath(Application.ExeName));
> > > >
> > > > Desta forma, basta instalar o executável novo em uma estação e nesta
> > > > mesma estação abrir ao menos uma vez o executável para que ele 
> sozinho
> > > > faça a atualização do banco.
> > > > As demais máquinas serão automaticamente atualizadas assim que
> > reabrirem
> > > > o sistema.
> > > >
> > > > Na ClubeDelphi 84 saiu um artigo sobre isso, foi de lá que peguei a
> > > > idéia. Porém a idéia do autor foi fazer um programinha a parte para
> > > > atualizar o banco. No meu caso já enfiei isso direto no 
> executável de
> > > > produção.
> > > >
> > > > Ah e tem mais: todos os meus clientes usam uma dll. Cada cliente 
> tem a
> > > > sua. Esse esquema tb previ a atualização automática das dlls.
> > > >
> > > > Xuxu beleza
> > > >
> > > > Adriano Santos
> > > > ----------------------------------------------------------
> > > > Editor Técnico Revista ClubeDelphi
> > > > www.delphitodelphi.blogspot.com
> > > > www.devmedia.com.br
> > > > www.devmedia.com.br/clubedelphi/pagina.asp
> > > >
> > > >
> > > >
> > > >
> > > > Darkzad respondeu:
> > > > >
> > > > > Bom dia a Todos
> > > > >
> > > > > Pessoal, estou desenvolvendo um sistema na empresa e sempre ocorre
> > > > > atualizações a fazer e sempre tenho que pedir os usuários para 
> sair
> > do
> > > > > sistema.
> > > > >
> > > > > Gostaria de fazer algo no sistema que enviasse uma mensagem 
> pedindo
> > ao
> > > > > usuário que saia do sistema para atualização.
> > > > >
> > > > > Teria algo possível de resolver isso?
> > > > >
> > > > > Desde já agradeço
> > > > >
> > > > > Darkzad
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > > ----------------------------------------------------------
> > > > >
> > > > > No virus found in this incoming message.
> > > > > Checked by AVG Free Edition.
> > > > > Version: 7.5.516 / Virus Database: 269.17.13/1213 - Release Date:
> > > > 07/01/2008 09:14
> > > > >
> > > >
> > > >
> > > > --
> > > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> > > >
> > > > Links do Yahoo! Grupos
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > > ----------------------------------------------------------
> > >
> > > No virus found in this incoming message.
> > > Checked by AVG Free Edition.
> > > Version: 7.5.516 / Virus Database: 269.17.13/1213 - Release Date:
> > 07/01/2008 09:14
> > >
> >
> >
> > --
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
> ------------------------------------------------------------------------
>
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.516 / Virus Database: 269.19.0/1216 - Release Date: 1/9/2008 
> 10:16 AM
>   

-- 
Adriano Santos
-------------------------------------------------------------
Editor Técnico Revista ClubeDelphi.
http://www.delphitodelphi.blogspot.com
http://www.devmedia.com.br
http://www.devmedia.com.br/clubedelphi/pagina.asp


Responder a