Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Artigo Clube Delphi 80 - Atualização automática de aplicações via FTP
Artigo da Revista Clube Delphi Edição 80.
Você não gostou da qualidade deste conteúdo?
(opcional) Você gostaria de comentar o que não lhe agradou?

Atenção: por essa edição ser muito antiga não há arquivo pdf para download desta revista. Os artigos disponíveis somente em doc.
Mão na Massa
Atualização automática de aplicações via FTP
Quantas vezes nosso cliente possui uma versão desatualizada do sistema e que precisa ser substituída? Situação essa faz com que o pessoal do suporte técnico dispenda tempo na substituição do software. Num contexto em que a internet está amplamente disseminada, podemos transferir a responsabilidade de atualizar os sistemas para o cliente, fazendo com que custos com pessoal técnico capacitado sejam reduzidos.
A transferência dessa responsabilidade exige ter em mente que, quanto maior a simplicidade e automação dessa operação, mais satisfeito ficará o cliente. Assim neste artigo apresentamos uma solução baseada no protocolo FTP para atualizar um sistema.
O que é FTP? É um protocolo de transferência de arquivos baseado no TCP/IP. Enviar e receber arquivos é a principal função do FTP, sendo amplamente usado no upload de arquivos para servidores Web. Destaco duas qualidades inerentes a esse protocolo: simplicidade e rapidez na utilização.
Primeiros passos
Através do projeto, o usuário poderá atualizar o sistema numa forma simples e automatizada. Na tela principal vamos ter opções para configurar a conexão com o servidor FTP e a atualização propriamente dita.
Abra o Delphi 7 e vamos montar a tela principal, adicionando dois Panels, dois Labels, três BitBtns, um Image, um Gauge, um StatusBar e o IdFTP (não mencionei alguns Labels que servem para indicar as funcionalidades ao usuário). Altere as propriedades dos componentes conforme a Tabela 1.
|
Componente |
Propriedade |
Valor |
|
Label1 |
Name |
“lblstatus” |
|
" |
Este é um post disponível para assinantes MVPou para quem possui Créditos DevMedia. Clique aqui para saber mais!
Fabio Corrêa
é Diretor e analista de sistemas da ProgreSystem Informática. Trabalha com Delphi e Firebird, desenvolvendo aplicações cliente-servidor. Bacharel em Sistemas de informação pela Universidade do Sul de Santa Catarina - UNISUL na cidade de Tubarão-SC.
12 COMENTÁRIOS
Muito bom o artigo. Era o q eu estava precisando. Só tenho uma dúvida, tem como fazer o inverso, ou seja, ao invés de fazer o download do servidor ftp para a maquina do cliente, que seja feito o upload do cliente para o servidor ftp? Você poderia dá essa dica?
Abs
Flávio
os fontes dessa edição encontram-se em http://www.devmedia.com.br/resumo/download.asp?site=3, na aba "downloads antigos"
porem aconselho quando for fazer novos tutoriais, procure usar componentes nativos do delphi para nao obrigar que tenhamos os componentes q usa.
xception:
------------------------------------------------------
2.1 Date : Fri, 18 May 2012 23:21:12 -0300
2.2 Address : 006C9E91
2.3 Module Name : Atualizador.exe
2.4 Module Version:
2.5 Type : EZeroDivide
2.6 Message : Floating point division by zero.
2.7 ID : E1CC
2.8 Count : 1
2.9 Status : New
2.10 Note :
quando executa a procedure TFrmPrinc.ftpupdateWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
Na linha media, o tamanho do arquivo esta zero.
media:=(100/tamanho_arquivo)*AWorkCount;
Um abraço.
Espero ter ajudado.
Amigo estou com este problema:
[DCC Error] uAtualizacao.pas(168): E2250 There is no overloaded version of 'Connect' that can be called with these arguments.
Nesta linha
ftpupdate.Connect(true);
Estou usando o XE2.
Meu querido, o artigo utiliza a versão do Indy do Delphi 7. Ao longo do tempo, o Indy sofreu atualizações. Uma delas foi a remoção do parâmetro de tipo boolean do método Connect.
Abraço
PS.: É muito provável que vc terá que realizar mais ajustes no código, para adequa-lo à nova versão do Indy.
ftpupdate.Connected:= true;
Aparece isso:
[DCC Warning] uAtualizacao.pas(180): W1000 Symbol 'FileAge' is deprecated
Veja: http://lmgtfy.com/?q=Delphi+%2B+o+que+%C3%A9+%20warning+do+compilador



