Preview only show first 10 pages with watermark. For full document please download

Visual Foxpro - Acessando Dados

Acesso a banco de dados pelo VFP

   EMBED


Share

Transcript

iMasters - Por uma Internet mais criativa e dinâmica Página 1 Nilton Paulino Segunda-feira, 12 de janeiro de 2004 Acessando Dados com Visual FoxPro Olá Pessoal! Como passaram desde a última publicação de nossa coluna? Mais uma vez gostaria de agradecer às pessoas que têm nos enviado e-mails. Cada mensagem que nos enviam é muito importante para nós, para que possamos avaliar a aceitação da coluna. As próximas edições da nossa coluna abordarão um assunto muito interessante, e praticamente impossível de ser desprezado por qualquer desenvolvedor de software atualmente. Estaremos falando sobre o acesso a dados. Acessando Dados com Visual FoxPro Acessar dados nunca foi um problema para o FoxPro. Na verdade já foi concebido para este fim. No entanto os anos se passaram, gerações de computadores ficaram para trás e muita coisa mudou desde então. Como as aplicações de hoje são mais distribuídas que aquelas da época do mainframe, é comum que toda empresa por mais pequena que seja, e que tenha um único computador possua pelo menos um banco de dados. Não importa quem seja o fabricante do banco de dados, ou o seu formato, o importante é que esses dados estão organizados de forma que venha facilitar a vida das pessoas que se utilizam das informações ali armazenadas. Não foram apenas as gerações de computadores que ficaram para trás com o passar dos anos. Muitos fabricantes de bancos de dados e de linguagens de programação surgiram e desapareceram. Mas para nós, desenvolvedores em Visual FoxPro, os anos foram bons. Nossa ferramenta evolui bem mais que outras que estão no mercado há mais tempo, e continuamos com toda aquela facilidade que já tínhamos desde o princípio. Desde o princípio acessar dados em FoxPro era muito simples. Por exemplo, supondo que tivéssemos uma tabela de clientes e quiséssemos visualizar todos os clientes desta tabela, bastaria a emissão de no máximo dois comandos: USE CLIENTES BROWSE O resultado poderia ser algo como o apresentado na figura 1, mudando apenas os dados, de acordo com o conteúdo da tabela: O exemplo acima é uma ilustração simples de dois comandos xBase herdados desde a época do dBase e FoxPlus, mas funcionam tão bem que são de dar inveja em outras linguagens existentes no mercado. Há alguns desenvolvedores por aí que usam outras linguagens que tentam justificar a necessidade de escrever dezenas, talvez até centenas de linhas de código pra recuperar dados de uma tabela de banco de dados e mostrá-los numa grid, e dizem que o Visual FoxPro é uma linguagem antiga e antiquada e que ninguém mais a utiliza. Estão enganados. Também utilizo outras linguagens e gostaria apenas de dizer que não se deve julgar algo como ultrapassado ou antiquado só porque não conhecemos. Na verdade não podemos julgar algo que não conhecemos. Com o objetivo de orientar aqueles desenvolvedores que ainda não tem uma certa intimidade com o Visual FoxPro, estarei tentando mostrar de forma bastante direta e clara nesta edição e nas próximas, algumas formas de acessar bancos de dados. Não julgo nenhuma delas ser melhor que a outra. Todas são opções que devem ser avaliadas no momento de executar um determinado projeto. Cada meio de acesso tem sua aplicação. Atualmente podemos numerar dentre os muitos tipos bancos de dados, os seguintes: http://imasters.uol.com.br/artigo/1682/visual_foxpro/acessando_dados_com_visual_foxpro/imprimir/ 9/28/2010 8:40:51 AM iMasters - Por uma Internet mais criativa e dinâmica Página 2 .Dados Nativos (do próprio Visual FoxPro) .MS SQL Server .MySQL Server .Oracle .PostgreSQL .outros Pois bem, estes são só alguns dois mais falados atualmente, mas é claro que existe uma grande quantidade de bancos de dados no mercado, muitos até gratuitos, inclusive. Para melhor concentração no que nos propomos a mostrar, estaremos apresentando a seguinte seqüência: .Acessando dados nativos .Acessando dados do MS SQL Server via ODBC .Acessando dados do MySQL via ODBC .Acessando dados do MS SQL Server, do Visual FoxPro, MySQL através do ADO. .Acessando vários tipos de dados através das classes CursorAdapter. Estaremos começando com esta coluna, apresentando em sua forma mais simples o acesso de dados nativos do Visual FoxPro, onde o banco de dados é padrão DBF/DBC. Vamos realizar algumas consultas sobre o banco de dados Northwind que vem junto do produto. Antes, porém quero apresentar alguns comandos que serão indispensáveis nessa empreitada: OPEN DATABASE - Abre um banco de dados USE - abre ou fecha uma tabela de banco de dados CLOSE DATABASE - fecha um banco de dados BROWSE - visualiza o conteúdo de uma tabela em uma grade. Muito bem, vamos ao trabalho! A primeira tarefa então é abrir o banco de dados que iremos trabalhar. Neste caso, o Northwind. Façamos então o seguinte a partir da janela de comandos: Pronto! Nosso banco de dados está aberto. Antes de começarmos a abrir tabelas no banco de dados Northwind, vamos dar uma examinada em quais tabelas existem no banco de dados. Basta digitarmos MODIFY DATABASE a partir da janela de comandos e aparecerá uma janela exibindo os objetos do banco de dados em questão: Na figura acima temos várias tabelas. As linhas que ligam essas tabelas umas às outras representam os relacionamentos entre elas. http://imasters.uol.com.br/artigo/1682/visual_foxpro/acessando_dados_com_visual_foxpro/imprimir/ 9/28/2010 8:40:51 AM iMasters - Por uma Internet mais criativa e dinâmica Página 3 Em sua forma mais simples, podemos abrir e consultar qualquer uma das tabelas acima apenas emitindo um comando USE seguido do nome da tabela e em seguida um comando BROWSE, conforme mostra a próxima figura. Vamos abrir e visualizar o conteúdo da tabela Customers: E então o resultado: Uma vez que a tabela está aberta, podemos navegar por seu conteúdo através do Browse e realizar modificações, excluir, inserir novos registros, etc. É claro que numa aplicação comercial necessitaremos criar formulários mais complexos para o acesso a estes dados. No entanto, a forma de abrir e acessar o banco de dados não muda, e é bem isso que estamos fazendo aqui. Para se trabalhar com o banco de dados nativo do Visual FoxPro não são necessários muitos comandos. Como você já viu, com OPEN DATABASE, USE e BROWSE conseguimos abrir o banco de dados e visualizar os registros ali contidos. Mas há outros comandos muito importantes para abertura e recuperação de dados. Um deles é o comando SELECT SQL, o qual possui uma sintaxe bem complexa do ponto de vista inicial, mas na prática é bastante simples de se utilizar. Vamos fazer a mesma coisa que fizemos anteriormente, porém usando um comando SELECT SQL. Vamos abrir e exibir o conteúdo da tabela Customers. Então vamos lá: O resultado é exatamente o mesmo, exceto pelo nome da tabela resultante: http://imasters.uol.com.br/artigo/1682/visual_foxpro/acessando_dados_com_visual_foxpro/imprimir/ 9/28/2010 8:40:51 AM iMasters - Por uma Internet mais criativa e dinâmica Página 4 Quando usamos um SELECT SQL para recuperar informações de um banco de dados, ele retorna o resultado solicitado criando uma nova tabela temporária para abrigá-lo. Em outras palavras, ele deixa a tabela original intacta e trabalha com uma tabela temporária. Esse fato é muito importante, pois fornecerá uma segurança extra à tabela original. Porém, deve-se observar que a tabela original continua aberta quando se trata de dados nativos. Bem, se o resultado é o mesmo, qual é a vantagem de se utilizar um SELECT SQL? Ah! O resultado foi o mesmo porque só fizemos uma consulta básica. O que fizemos foi pedir que nos trouxesse como resultado todos os registros da tabela. Poderíamos por exemplo solicitar que apenas os clientes da cidade de São Paulo fossem filtrados. Nesse caso, acrecentaríamos o filtro na linha de comando SELECT, como mostra a próxima figura: Vejamos o resultado: E assim poderíamos filtrar por qualquer campo, inclusive unindo várias condições. Para complementar nossa coluna, quero realizar apenas mais uma consulta onde a pesquisa é realizada no conteúdo de duas tabelas e o resultado final em apenas uma. Estaremos pesquisando as vendas realizadas para os clientes de São Paulo: O resultado será: http://imasters.uol.com.br/artigo/1682/visual_foxpro/acessando_dados_com_visual_foxpro/imprimir/ 9/28/2010 8:40:51 AM iMasters - Por uma Internet mais criativa e dinâmica Página 5 A introdução de comandos SQL em nossas aplicações nos dará uma flexibilidade maior para extrair dados escrevendo menos. Aqueles desenvolvedores que vieram de outros dialeto xBase como Clipper e dBase sabem como era complicado formar um resultado como o apresentado na figura acima. Agora que já consultamos todos os dados que precisamos, podemos fechar nosso banco de dados. Basta emitir o comando CLOSE DATABASES ALL na janela de comando. Todos os bancos de dados e suas tabelas serão fechados. Para conhecer melhor o potencial do comando SELECT SQL, consulte o help do Visual FoxPro. Nosso objetivo nesta coluna foi alcançado. Com clareza pudemos ver como acessar dados nativos do Visual FoxPro. Nossa próxima coluna mostrará como acessar dados remotos num servidor SQL Server através de um driver ODBC usando a tecnologia Pass-Throug. Até a próxima coluna! http://imasters.uol.com.br/artigo/1682/visual_foxpro/acessando_dados_com_visual_foxpro/imprimir/ 9/28/2010 8:40:51 AM