Arquivo

Delphi

Meus artigos em revistas especializadas em Delphi

Revista ClubeDelphi

Revista ActiveDelphi

VN:F [1.8.4_1055]
Rating: 5.5/10 (2 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Criar e excluir diretórios virtuais e registrar ASP.NET 2.0 no IIS com Delphi

25, outubro, 2009 Manoel Campos Sem comentários

Devido a versão mobile do meu Sistema de Pesquisa de Opinião e Mercado – SIPOM utilizar um WebService ASP.NET para transferência de dados entre o servidor e os Pocket PC’s, e para automatizar a instalação desse WebService no servidor Web IIS (Internet Information Services), desenvolvi uma pequena aplicação Leia mais…

VN:F [1.8.4_1055]
Rating: 5.5/10 (2 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Estou vendendo: Pacote de revistas especializadas em Delphi

21, outubro, 2009 Manoel Campos Sem comentários

Estou vendendo pacotes de revistas Mundo Delphi, Clube Delphi e Active Delphi por meio do Mercado Livre.
Revistas em excelente estado de conversação. Para aprender e colecionar.

São 160 revistas. Cada pacote vendido é composto por 5 revistas. Você pode escolher a sequênica de revistas e comprar quantos pacotes desejar.

Clique aqui para acessar o anúncio no site do Mercado Livre.

VN:F [1.8.4_1055]
Rating: 4.0/10 (3 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

No-IP Update Client Delphi Component v0.9

6, outubro, 2009 Manoel Campos 8 comentários

O No-IP Update Client Compoent é um componente para Delphi que implementa a API do No-IP, um serviço de DNS dinâmico.

Quem utiliza o serviço de DNS dinâmico do No-IP sabe da necessidade de instalação do programa cliente No-IP no computador, Leia mais…

VN:F [1.8.4_1055]
Rating: 10.0/10 (1 vote cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

DelphiCD – Coletânea de Componentes, Exemplos, Tutoriais, Glyphs e muito mais, tudo Free/OpenSource

3, setembro, 2009 Manoel Campos 4 comentários

Apesar de eu ter abandonado o Delphi a algum tempo devido ao mestrado, onde estou trabalhando com outras linguagens, como tinha muito material guardado, de anos e anos de navegação pela Web, resolvi juntar em uma coletânea, tudo o que pode ser distribuído livremente  (116MB compactada, 259MB descompactada) e liberar para download aqui.

Existem muitos arquivos de dicas, exemplos, apostilas, tutoriais, glyphs, ícones e diversos componentes com código fonte. Leia mais…

VN:F [1.8.4_1055]
Rating: 8.4/10 (5 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Alterar Volume Label de PenDrives e HDs no Linux

10, abril, 2009 Manoel Campos 4 comentários

Para alterar o rótulo (label) do sistema de arquivos do seu pendrive, no linux, basta usar o comando mkfs. Se o seu pendrive tem sistema de arquivos fat32 (o padrão, pois assim ele é reconhecido em quase todos os sistemas operacionais), execute o comando mkfs.vfat assim: sudo mkfs.vfat -n NovoRotuloParaSeuPenDrive NomeDoDispositivo.

ANTES DE EXECUTAR, FAÇA BACKUP DOS ARQUIVOS DO SEU PENDRIVE, POIS O COMANDO APAGOU TUDO QUE TINHA NO MEU. Felizmente, eu não guardo nada somente no pendrive, uso ele apenas para transportar algo de um computador para outro.

Veja abaixo um exemplo de comando, que usei para mudar o rótulo do meu pendrive:

sudo mkfs.vfat -n mcampos /dev/sdb1

Diretamente pela interface do Gerenciador de Arquivos no Ubuntu não foi possível fazer, acredito que é pelo fato do sistema de arquivos ser fat32.

Para alterar o label de uma partição de um HD, basta usar o comando e2label assim: sudo e2label NomeDoDispositivo NovoRotuloParaSeuPenDrive . Neste caso, você não corre o risco de perder nenhum dado, mas ele não funciona com PenDrives, acredito ser devido ao sistema de arquivos fat32.

Veja exemplo:

sudo e2label /dev/sda1 dados
VN:F [1.8.4_1055]
Rating: 10.0/10 (2 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Driver DBExpress 4 para Firebird no Delphi 2007 e 2009

26, fevereiro, 2009 Manoel Campos Sem comentários

A IBExpert, desenvolvedora da ferramenta de mesmo nome para administração de banco de dados firebird, agora (não sei desde quando) tem um driver DBExpress 4 para Firebird no Delphi 2007 e 2009. O driver é proprietário mas possui uma versão personal, assim como a ferramenta IBExpert, porém, não pode ser distribuído. Para isto, o desenvolvedor deve comprar uma licença.

Não testei, mas se tiver a mesma qualidade da ferramenta IBExpert, o driver deve ser excelente. Uma das coisas boas é que ele tem suporte total a Unicode.

Mais informações em http://ibexpert.net/ibe/index.php?n=Main.IBExpertDBX4Firebird

VN:F [1.8.4_1055]
Rating: 1.0/10 (1 vote cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Pegando o último valor de auto incremento inserido no mysql

2, julho, 2008 Manoel Campos 3 comentários

Bem, vamos ao post rápido de hoje.

No MySQL e em muitos bancos existe um recurso de auto incremento que é usado para campos chave primária das tabelas, impedindo que existam dois registros com o mesmo código.

No MySQL o usuário não tem como saber previamente, de uma maneira segura, qual o próximo valor que será gerado para o campo auto incremento de uma tabela. Apenas após inserir um registro na tabela é que podemos saber. Na linguagem PHP, por exemplo, existe a função mysql_insert_id que retorna o valor gerado para o campo auto incremento no último comando insert executado. Isto é útil quando precisamos incluir registros em outra tabela que serão relacionados com o registro que foi inserido, como por exemplo, quando temos uma tabela venda e outra item_venda. A tabela venda normalmente terá um campo cod_venda auto incremento. E ao registrar uma venda, precisamos incluir pelo menos um item de venda, que estará relacionado com a venda que foi inserida. Para fazer esse relacionamento, a tabela item_venda normalmente terá um campo cod_venda para fazer essa associação, assim, o cod_venda da tabela item_venda deve ter o valor do campo auto incremento cod_venda da tabela venda. Assim, para isso que usamos, em PHP, a função mysql_insert_id.

Porém, em outras linguagem como o Delphi, não existe uma função semelhante a mysql_insert_id do PHP, logo, como fazer para retornar o valor auto incremento gerado pelo último insert? Simples, use a instrução sql select LAST_INSERT_ID(); . Independente da linguagem de programação que você usa, isto vai funcionar. Você pode até criar uma função de nome mysql_insert_id na linguagem de programação que desejar, para executar a sql mostrada acima e assim, apenas chamar a função quando desejar. Veja exemplo em Delphi utilizando os componentes DBExpress:

function mysql_insert_id(SQLConnection: TSQLConnection): Integer;
var SqlDataSet: TSqlDataSet;
begin
result:= 0;
SqlDataSet:= TSqlDataSet.Create(nil);
try
SqlDataSet.SQLConnection:= SQLConnection;
SqlDataSet.CommandText:= ’select LAST_INSERT_ID()’;
SqlDataSet.Open;
result:= SqlDataSet.Fields[0].AsInteger;
SqlDataSet.Close;
finally
SqlDataSet.Free;
end;
end;

Para chamar a função deve-se passar um objeto da classe TSQLConnection por parâmetro, que representa a conexão com o banco de dados.

Espero que seja útil, como foi pra mim.

T+

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)
Categories: BD, Delphi, Programação, Software Livre Tags:

MySQL 5 e Firebird 2 no Delphi 2007 com DBExpress

Para os amantes do MySQL e do Delphi, até que enfim a Borland/CodeGear criou um driver DBExpress que funcione no MySQL 5.  Pelo que soube, em um dos Borland Conference que participei, o grande problema é que os desenvolvedores do MySQL faziam muitas alterações significativas no núcleo do mysql, o que tornava os drivers da Borland incompatíveis com as novas versões deste banco de dados. O Delphi 2007 veio com uma nova versão do DBExpress, a versão 4, o que tornou os antigos drivers de terceiros, para diversos bancos de dados, incompatíveis com esta nova versão. Drivers como o UIB para Firebird não funcionam mais no Delphi 2007.

O driver DBExpress oficial da Borland/CodeGerar para o Delphi 2007, de nome MySQL funciona, mas somente com versões do MySQL 5.0.27 e 4.1.22*, como informa no arquivo readme.htm na pasta do Delphi 2007, normalmente localizado em C:\Arquivos de programas\CodeGear\RAD Studio\5.0\readme.htm. Este driver funciona com a dll DBExpress de nome dbxMYS30.dll e a libmysql.dll (dll cliente do mysql). Logo, se você tiver um MySQL superior a versão 5.0.27, poderá ter problemas. Para você saber qual a versão do seu mysql, abra o prompt de comando e digite mysql -h localhost -u root -p -v onde -h é para indicar o ip/nome dns do servidor mysql e localhost é o servidor local, -u é para indicar o nome de um usuário, onde usei o usuário root, -p é para informar a senha (a mesma será solicitada após pressionar enter) e -v para mostrar a versão do servidor. Esta versão do driver DBExpress para MySQL funciona com caracteres unicode (um padrão internacional para representação de caracteres de diversas linguagens, que permite que um caractere acentuado, por exemplo, seja representado da mesma forma, independente da linguagem da aplicação/sistema operacional). A versão antiga do driver foi renomeada para dbxmysA30.dll, pois os drivers DBExpress nativos da Borland/CodeGear permitem trabalhar em modo de compatibilidade com o DBExpress 3. A letra A contida no nome do driver indica que o mesmo só aceita caracteres ASCII.

No meu caso, estou utilizando o MySQl 5.0.41 e a aplicação funciona normalmente, mas em tempo de projeto (design time), ocorre um erro informando que a biblioteca libmysql.dll não foi encontrada, e não adianta sair colando ela em tudo que é pasta que lhe vier a cabeça que o Delphi não a encontra. Como podemos não encontrar para baixar a versão 5.0.27 do MySQL, ou outra compatível com o driver DBExpress do Delphi, uma solução seria utilizar uma versão anterior da biblioteca libmysql.dll que pode ser encontrada nos pacotes de instalação do PHP, por exemplo. Você pode baixar a versão 5.0.22 da libmysql.dll, que funciona no Delphi 2007, nesse link, nesse, ou nesse. Basta descompactar esta dll na pasta bin de instalação do Delphi 2007, normalmente em C:\Arquivos de programas\CodeGear\RAD Studio\5.0\bin, que o driver vai funcionar em tempo de projeto no Delphi.

Quanto ao Firebird 2, ainda bem que o colega Thiago Borges de Oliveira desenvolveu um Driver DBExpress 4 gratuito exclusivo para o Delphi 2007, que está em versão Release Candidate, mas testei e tá funcionando direitinho, porém, podem ocorrer problemas por não ser uma versão final. O driver possui um setup que automatiza o processo de instalação, porém, requer o December Update do Delphi 2007 para funcionar, sem ele, até o processo de instalação pode falhar.

VN:F [1.8.4_1055]
Rating: 10.0/10 (2 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)
Categories: BD, Delphi Tags:

Eu no YouTube

13, janeiro, 2008 Manoel Campos Sem comentários

Hoje estava navegando no YouTube e encontrei duas das video-aulas que publiquei no site da revista Active Delphi.
Pena que a pessoa que publicou não colocou informações detalhadas sobre as video-aulas e nem mesmo incluiu meu nome ou o site da revista, mas está lá para quem quiser ver, juntamente com várias outras video-aulas de delphi de diversos autores.

Os links são estes: Criando Objetos Dinamicamente em Delphi e Aplicação de Cadastro com arquivo XML.

VN:F [1.8.4_1055]
Rating: 1.0/10 (1 vote cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)

Desenvolvimento de aplicações para Compact Framework com BDS2006 e CF Build Helper

6, janeiro, 2008 Manoel Campos 6 comentários

Quem está desenvolvendo aplicações para dispositivos móveis Pocket PC ou Smartphones com o Borland Developer Studio 2006 utilizando o plugin Compact Framework Build Helper pode se deparar com o erro ILLK3860 no momento da compilação da aplicação. Procurando na internet encontrei apenas uma resposta indicando que este erro poderia ser do compilador do Delphi ou do Plugin. Já comecei a me desesperar. Porém, meu projeto estava compilando antes, então, tentei lembrar o que tinha feito de diferente para ele deixar de compilar. Aí lembrei que tinha incluído um arquivo AssemblyInfo no projeto, para adicionar informações sobre a versão da aplicação. Assim, descobri que isto foi a causa do erro quando removi o arquivo do projeto. Em projeto para .NET Compact Framework (deve valer para aplicacações Windows Forms com o.NET Framework), as informações de versão devem ser incluídas diretamente no arquivo dpr.

VN:F [1.8.4_1055]
Rating: 0.0/10 (0 votes cast)
VN:F [1.8.4_1055]
Rating: 0 (from 0 votes)