Nossa, Vixi o meu esquema tah meio complexo então....kkkk.
Primeiro atualização Off-Line. 1.0. Consiste em atualizar automaticamente todas as estações da rede. Como é feito? 1.1. Eu tenho uma tabela no banco chamada Atualizacoes com os campos ID, MODULO, VERSAO, ARQUIVO (BLOB); Nela eu guardo o executável própriamente dito. Qdo o usuário entra no sistema ele é conectado ao banco e a versão atual é checada com a versão que está no banco. Se a dele for inferior eu chamo um outro programa pequeno que fecha o módulo que o chamou. Esse programa se conecta com o banco e usa o método SaveToFile do DataSet para salvar o arquivo do Banco na pasta local. Se a versão que o cara está abrindo é maior que a do banco então uso LoadFromFile pra subir o arquivo executável para dentro da tabela e atualizo a versão. Desta forma garanto que todas as máquinas na rede esteja com a mesma versão. Blz, morreu. 2.0. A atualização on-line é feita por meio de dois arquivos idênticos que ficam na pasta de instalação do executável e na pasta de ftp do meu site. Os arquivos são Versoes.amk (pasta local) e Atualizacoes.amk (pasta remota). Ambos tem a seguinte estrutura: [Atualizacoes] Modulo1=Operacao.exe Versao=6.1.28 Titulo=Operacao Modulo2=Cobranca.exe Versao=6.1.26 Titulo=Cobranca Tenho um programa chamado Atualizador.exe que faz o download do Atualizacoes.amk e compara com o Versoes.amk preenchendo um ListView com os módulos que precisam ser atualizados. O arquivo Atualizacoes.amk é atualizado meus meus programadores toda vez que uma versão nova é enviada ao servidor. Na verdade são arquivos .INI com extensão alterada. O cara clica em um botão Now. Os módulos são fechados automaticamente - já que o programa faz o download na mesma pasta dos módulos - por fim os downloads são efetuados na pasta de instalação dos módulos como mencionei e boas. Agora estamos em processo de hiper-automatização. On-line temos uma tabela em um banco Firebird com o nome dos clientes, DLL, vesão de DLL e caminho fisico remoto dos arquivos. Esse mesmo programa será chamado do executável principal automaticamente e em background, ou seja, ficará rodando no relógio. Ao abrir o programa ele conectará ao banco de dados online pra ver se existem novas atualizações. Fará as atualizações necessárias em uma pasta de diferente do diretório de instalação, pra evitar que o módulo não seja atualizado porque está aberto. Feito isso (os downloads) o meu Atualizador vai jogar os arquivos dentro do banco de dados na tabela chamada Atualizacoes que já existe hoje. Desta forma a próxima vez que o cliente abrir o módulo está atualizado e não vai nem perceber. Temos um programa gerenciador e troca e envia a nova versão dos módulos para nosso servidor FTP. Além disso toda vez que o sistema é aberto uma nova verificação é feita, uma vez por dia. Acabaram meus problemas. Desculpem a biblia. -- Adriano Santos Desenvolvedor Delphi desde 1998. Professor e programador PHP. Bacharel em Comunicação Social pela Universidade Cruzeiro do Sul, SP. Editor Técnico, Colunista e Comissão Editorial da revista ClubeDelphi. http://www.devmedia.com.br http://www.clubedelphi.net http://www.delphitodelphi.blogspot.com Jorge Ericsson respondeu: > > Eu achei interessante a idéia do Claudiney e do Eduardo, mas eu gostaria > saber como implementar no meu código a checagem na entrada e o MD5. > Hoje eu apenas coloco um arquivo executavél q baixo via FTP pelo próprio > programa, mas informo ao usúário q ele deve iniciar o processo. > Se tiver como vcs me enviarem um pedaço do código por e-mail em PVT > para eu > ter uma idéia, eu agradeço. > Valew pessoal. > > Em 17/10/07, Claudiney Cogo <[EMAIL PROTECTED] > <mailto:claudiney-listas%40n2solutions.com.br>> escreveu: > > > > Aqui no meu sistema também fiz assim... na entrada do sistema sempre > > verifico e informo que existe.. ele tem opção de não fazer no > momento, mas > > caso não faça a mensagem vai ficar incomodando toda hora que entrar no > > sistema.. até ele atualizar. Mas ainda existe um botão na interface do > > sistema pra executar essa verificação, caso ele queira verificar em > qualquer > > outro momento. > > > > _____________________________________ > > Claudiney Cogo > > N2 Sistemas e Soluções em Informática > > Av. São Paulo, 172 - 15º Andar - Sala 1505 > > Maringá - Paraná > > www.n2solutions.com.br > > > > ----- Original Message ----- > > From: Eduardo Silva dos Santos > > To: delphi-br@yahoogrupos.com.br > <mailto:delphi-br%40yahoogrupos.com.br> <delphi-br%40yahoogrupos.com.br> > > Sent: Wednesday, October 17, 2007 10:13 AM > > Subject: Re: [delphi-br] URGENTE - Dúvidas sobre como informar as > > atualizações do sistema > > > > No meu sistema eu coloquei para verificar se tem atualização assim que o > > usuário executa o sistema, caso tenha atualização ele avisa que > existe uma > > e > > faz o download em seguida... colocar para confirmar ou não é complicado, > > tinha clientes que nao atualizavam a muito tempo. > > > > Em 17/10/07, Jorge Ericsson <[EMAIL PROTECTED] > <mailto:jericssonsup%40gmail.com><jericssonsup%40gmail.com>> > > escreveu: > > > > > > Olá amigos, > > > > > > O controle de versão por mim está tranquilo pq eu coloco o meu > > executavel > > > no > > > meu servidor ftp e sempre q a nova versão eu tenho que ligar para > o meu > > > cliente ou enviar um e-mail solicitando q o mesmo clique em checar > novas > > > atualizações pelo próprio programa. Nesse ponto ele já faz todas as > > > verificações possíveis. > > > > > > Para controla a versão do programa eu tbém já gravo em uma tabela o > > > realese > > > gerada pelo delphi. > > > > > > O meu problema é criar ou não um serviço q fique checando as > informações > > > no > > > site ou se coloco no programa para que o próprio usuário ao executar > > > programa tome a decisão de instalar ou não. > > > > > > Hj eu usso o idHTTP para checar se existe ou não atualizações... > > > > > > Em 17/10/07, Claudiney Cogo <[EMAIL PROTECTED] > <mailto:claudiney-listas%40n2solutions.com.br><claudiney-listas%40n2solutions.com.br> > > <claudiney-listas%40n2solutions.com.br>> > > > escreveu: > > > > > > > > Olá Jorge. > > > > > > > > Hoje eu faço isso de uma forma bem simples. Usando ftp. Eu crio um > > > arquivo > > > > zip com a última versão e disponibilizo no ftp. Quando o cliente > loga > > no > > > > sistema eu verifico a versão que está guardada em uma tabela de > > > > configurações e comparo com a versão do arquivo no ftp. Eu uso como > > > versão a > > > > data do arquivo zip. Dessa maneira sempre que tem um arquivo mais > > > recente eu > > > > sei que houve atualização e informo ao usuário que existe, > perguntando > > > se > > > > quer atualizar no momento. Se sim, baixo usando ftp e descompacto na > > > pasta > > > > do sistema. No próximo login, abro um form com um histórico das > > > atualizações > > > > disponíveis em cada versão, inclusive a que acabou de baixar, com > > opção > > > de > > > > não abrir mais, ou continuar abrindo toda vez que iniciar o sistema. > > > > > > > > Porém não faço verificação se o usuário é administrador do sistema, > > mas > > > é > > > > possível fazer, pois a atualização só acontece depois do login. > > > > > > > > Também ainda não uso threads pra isso, mas vou adicionar isso ao > > sistema > > > > com certeza, pois o que fica ruim nesse caso é que sempre na entrada > > do > > > > sistema ele fica alguns segundos parados esperando a resposta do > site > > > ftp. > > > > > > > > Quanto as threads é bem simples de implementar. Tenho alguns > exemplos > > > bem > > > > fáceis de entender. Caso queira me avise que envio. > > > > > > > > Abraço > > > > _____________________________________ > > > > Claudiney Cogo > > > > N2 Sistemas e Soluções em Informática > > > > Av. São Paulo, 172 - 15º Andar - Sala 1505 > > > > Maringá - Paraná > > > > www.n2solutions.com.br > > > > > > > > > > > > ----- Original Message ----- > > > > From: Jorge Ericsson > > > > Sent: Wednesday, October 17, 2007 2:25 AM > > > > Subject: [delphi-br] URGENTE - Dúvidas sobre como informar as > > > atualizações > > > > do sistema > > > > > > > > Olá Amigos, > > > > > > > > Estou com o problema de definir uma forma eficiente de meus usuários > > > > visualizarem as novas atualizações do meu sistema. > > > > Bom eu criei um arquivo no meu servidor onde informo as novas > > > atualizações > > > > do meu sistema e preciso que o meu usuário visualize essas > informações > > > > assim > > > > que o mesmo loga no sistema. > > > > Mas não estou encontrando a forma correta de informar essas > > > atualizações. > > > > > > > > Preciso testar se o usuário é o administrador, preciso checar as > suas > > > > conexões com a internet e tbém busca as novas atualizações depois de > > um > > > > certo tempo de logado no sistema. > > > > > > > > Como fazer de forma rápida e eficiente este processo. > > > > > > > > Alguém usa Threeds ? > > > > > > > > Valew, > > > > > > > > Jorge Ericsson S. Pinheiro > > > > Analista/Projetista de Sistemas > > > > Ericsson Sistemas e Soluções > > > > http://www.jericsson.com.br <http://www.jericsson.com.br> > > > > 61 9227.4785 / 3965.2992 / 3039.1768 > > > > Brasília - DF > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > __________ NOD32 2596 (20071017) Information __________ > > > > > > > > This message was checked by NOD32 antivirus system. > > > > http://www.eset.com <http://www.eset.com> > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > > -- > > > Jorge Ericsson S. Pinheiro > > > Analista/Projetista de Sistemas > > > Ericsson Sistemas e Soluções > > > http://www.jericsson.com.br <http://www.jericsson.com.br> > > > 61 9227.4785 / 3965.2992 / 3039.1768 > > > Brasília - DF > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > -- > > ....................................................... > > Eduardo Silva dos Santos > > DRD Sistemas. > > (27) 3218-4201 > > MSN: [EMAIL PROTECTED] <mailto:eduardo.drd%40gmail.com> > <eduardo.drd%40gmail.com> > > Site: http://www.drdsistemas.com/ <http://www.drdsistemas.com/> > > ....................................................... > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > __________ NOD32 2597 (20071017) Information __________ > > > > This message was checked by NOD32 antivirus system. > > http://www.eset.com <http://www.eset.com> > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > -- > Jorge Ericsson S. Pinheiro > Analista/Projetista de Sistemas > Ericsson Sistemas e Soluções > http://www.jericsson.com.br <http://www.jericsson.com.br> > 61 9227.4785 / 3965.2992 / 3039.1768 > Brasília - DF > > [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.488 / Virus Database: 269.14.13/1075 - Release Date: 17/10/2007 > 09:38 > -- Adriano Santos Desenvolvedor Delphi desde 1998. Professor e programador PHP. Bacharel em Comunicação Social pela Universidade Cruzeiro do Sul, SP. Editor Técnico, Colunista e Comissão Editorial da revista ClubeDelphi. http://www.devmedia.com.br http://www.clubedelphi.net http://www.delphitodelphi.blogspot.com