Postagens

Enviar Arquivos por FTP com Delphi

Imagem
Hoje vamos trabalhar com envio de arquivos via FTP, parece que é muito difícil, mas nem tanto, apenas seguir algumas regras e o resultado sera bem legal. Adicione um componente IdFTP da paleta Indy Clients conforme figura abaixo:  Preenche as seguintes propriedades através de um evento de um botão ou no evento de sua preferencia em seu formulário:  Após os dados de conexão serem devidamente informados é hora de disparar o método de conexão através da chamada IdFTP1.Connect. Em caso de erro, verifique os dados da conexão e tente novamente. Em seguida precisamos determinar a pasta onde iremos posicionar nossos arquivos com o comando IdFTP1.ChangeDir, veja a imagem abaixo:  Neste exemplo o protótipo devera extrair imagens de um campo tipo Blob  do Firebird comumente usado para armazenar imagens. O resultado, você pode conferir na imagem abaixo: Fácil não? A aplicação destes recursos são muitas.

Percorrer todos os Edits do Form em Delphi

Imagem
Olá. Em algum projeto você ja precisou percorrer todos os controles do formulário que esta trabalhando?  Imagine se precisar limpar todos os TEdit do seu form, tendo em mente que são 5 ou 6 destes componentes, talvez fazer um código tabajara e limpar manualmente seja a melhor opção, agora e se fosse 50 TEdits a serem limpos? Ai já não é la muito inteligente fazer tudo no braço. Melhor maneira de resolver este problema é fazer um método varrer todo o formulário em busca destes componentes.  Em Delphi podemos fazer isso de uma maneira bem tranquila, veja o código abaixo: O que acontece durante a execução do código acima é que, toda vez que um novo componente é colocado no Form (que é um objeto conteiner) ele é adicionado numa lista de objeto e evidentemente posso percorrer esta lista, no if dentro do laço acontece o teste pra saber se o componente na posição atual é de uma determinada classe (neste caso TEdit) case seja verdadeiro, acionamos a propriedade Cle...

POO Delphi - Criando classe genérica de manipulação de arquivos .INI

Imagem
Olá. Neste artigo vamos falar um pouco de Programação Orientada a Objetos utilizando Delphi, confesso que é um tema recorrente e a implementação da especificação POO em Delphi é meio estranha, comparando-se com o JAVA, mas funciona que é uma maravilha e como facilita nossa vida. Neste exemplo vamos criar uma classe cuja finalidade é tornar o acesso simplificado as seções de arquivos de configuração .INI.  Com o Delphi aberto e já estando em um novo projeto, crie uma nova Unit no Delphi e declare os seguintes métodos e dependências conforme a figura abaixo: Para começar o entendimento do código da figura acima começamos pela seção Type que marca o inicio da declaração da classe TFile . Logo abaixo temos a seção private que segue o conceito de todas as linguagens de programação que diz que toda variável private apenas a unidade que a declara tem acesso a ela, ou seja, pFile só pode ser acessada de dentro da Classe TFile . Na seção Public encontramos um método Create...

Conhecendo o FireDac - trabalhando com Macros

Imagem
Olá. Macros são definidos na programação como um padrão de entrada que é substituído por um novo padrão de saída, ou seja, executam um processamento automático em algum ponto, em outros drives como DBX até podíamos utilizar variáveis e/ou parâmetros ou mesmo filtros utilizando condições como where e tal. Contudo não era possível por exemplo usar um parâmetro substituindo o nome da tabela. Ex.: "select * from :tabela" . No FireDac pode ser feito uso de variáveis de substituição como um processador de templates e substituir o texto da variável, usando caracteres "!" representando string e "&" representando (SQL). Interessante não.? Até mais. Fonte: guintherpauli.blogspot.com.

Conhecendo FireDac - Trabalhando com múltiplos bancos de dados.

Imagem
Olá. Existe muitas boas opções de bancos de dados no mercado e alguns bem conhecidos, tais como Oracle, MSSQL Server, MySQL, PostGres, Firebird e entre outros. E sempre uma tarefa bem difícil optar por um deles dado as suas qualidade individuais, contudo se seu projeto precisar dar suporte a múltiplos SGBD´s , o FireDac consegue atender tranquilamente a demanda sem perder as características individuais de cada um e o melhor de tudo, sem muito malabarismo por parte da equipe de desenvolvimento. A estratégia usada pelo componente é uma especie de diretiva de compilação semelhante a do pascal, veja o exemplo: Desta forma ao executar a instrução o componente sabe qual dialeto usar, não sendo mais necessário chamadas a API ou mesmo componente de terceiros. Até o próximo post. fonte: guintherpauli.blogspot.com

Conhecendo o FireDac - Trabalhando com Arrays

Imagem
Olá. Recentemente publiquei um post falando sobre a importação de dados para um banco através de um arquivo de retorno veja aqui  Importando registros de arquivo de retorno de folha de pagamento para um servidor na nuvem  . Foi utilizado uma operação de insert por meio da propriedade do DataSet conforme figura abaixo. Contudo existe uma forma bem mais elegante de se fazer esta operação utilizando Arrays através do FireDac . Este mesmo código poderia ser construído da seguinte forma. Veja: O resultado será uma string SQL neste formato: insert into tabela (conta, funcionario, valor) values  ('2', 'XXXXXX', 20), ('3', 'ZZZZZZ', 10), ('4', 'GGGGGG', 40), ('5', 'BBBBBB', 30) Qual a vantagem? será executado vários insert´s de uma unica vez no banco de dados. Fácil não? Até mais.

Conhecendo o FireDac - Trabalhando com Banco de Dados desconectado

Imagem
Olá. O FireDac é um conjunto de componentes de acesso a dados muito versátil para acesso a dados, atualmente faz parte do conjunto de componentes nativos do Delphi e proporciona acesso a qualquer banco que esteja pensando em utilizar em seus projetos. Com ele posso desenvolver de modo multiplataforma (banco de dados) sem perder nenhuma característica individual de cada banco.  Uma característica bem interessante no FireDac é a capacidade de alternar entre os estado Online e Offline sem levantar exceções por perda de conexões. Esta feature é bem interessante quando estamos em um ambiente onde a conexão é instável, permitindo a aplicação seguir seu funcionamento sem falhas de conexão. Para utilizar este recurso segue o exemplo de código conforme a figura abaixo.: No evento FormCreate apenas a conexão com o banco é ativada e a query Qr1 é aberta e o comando FetchAll é acionado, totalizando todos os registros retornados pelo resultset . No evento do botão btnOffLine a c...