![]() |
![]() | ||||||
|
CREATE TABLE
CLIENTES ( ID INTEGER NOT NULL, NOME VARCHAR (80), ENDERECO VARCHAR (80), BAIRRO VARCHAR (30), CIDADE VARCHAR (30), UF CHAR (2), CEP CHAR (10), DOC1 VARCHAR (18), DOC2 VARCHAR (18), TELEFONE VARCHAR (14)); /* Chave Primária */ ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (ID); |
Listagem 1 – Criando a tabela
Para o campo ID vamos criar um generator e uma trigger para que o mesmo seja incrementado automaticamente, veja a listagem 2.
/*
Generator */ CREATE GENERATOR GEN_CLIENTES_ID ; /* Trigger */ CREATE TRIGGER TRG_CLIENTES_BI0 FOR CLIENTES ACTIVE BEFORE INSERT POSITION 0 AS begin NEW.ID = GEN_ID(GEN_CLIENTES_ID, 1); end |
Listagem 2 – Generator e Trigger
Agora vamos ao que realmente interessa, a conexão via BDP!
Acessando o Firebird via BDP
Junto ao Delphi 8 .NET a Borland disponibilizou drivers BDP para acesso a vários bancos de dados, sendo: DB2, Interbase, MSAccess, MSSQL e Oracle. Bem, você pode estar pensando, posso acessar o Firebird utilizando o driver para Interbase assim como estou habituado a fazer no dbExpress, onde existe compatibilidade entre ambos, certo? Errado! Devido a várias implementações e correções efetuadas no Firebird esta compatibilidade não é 100% e o driver que acompanha o Delphi 8 .NET até consegue efetuar a conexão a um banco Firebird, contudo não consegue extrair informações de tabelas, índices, etc. Mediante isso, o mesmo autor do projeto Firebird .NET Provider Data Provider, iniciou a implementação de um driver BDP específico para o Firebird. Até o momento da conclusão deste artigo, a versão disponível é a versão Alpha 1 para o .NET Framework 1.1. Apesar de ser uma versão Alpha, executamos vários testes e os resultados forem surpreendentes, acredito que em breve teremos uma versão final. Bem, o primeiro passo é efetuar o download do “BDP For Firebird” no seguinte endereço:
http://www.ibphoenix.com/main.nfs?a=ibphoenix&s=1089111581:165&page=ibp_download_dotnet
A instalação é bastante simples, basta ir clicando em “Próximo” até o final. Bem, este é o primeiro passo da instalação. Antes de abrir o Delphi 8 .NET, iremos necessitar efetuar entradas nos arquivos BdpDataSources.xml e BdpConnections.xml, ambos disponibilizados na pasta ...\Borland\BDS\2.0\Bin. Abra estes arquivos através do bloco de notas por exemplo, e adicione as seguintes entradas ao final dos mesmos:
* BdpDataSources.xml:
<provider
name="Firebird" connectionStringType="FirebirdSql.Data.Bdp.FbConnectionString, FirebirdSql.Data.Bdp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c7d0a028dd9e545b"> <objectTypes> <objectType>Tables</objectType> <objectType>Procedures</objectType> <objectType>Views</objectType> </objectTypes> </provider> |
* BdpConnections.xml:
<BdpConnectionString
xsi:type="FbConnectionString"> <Name>FbConn1</Name> <Database>localhost/3050:employee.fdb</Database> <UserName>sysdba</UserName> <Password>masterkey</Password> <Assembly>FirebirdSql.Data.Bdp,Version=1.0.0.0,Culture=neutral,PublicKeyToken=c7d0a028dd9e545b</Assembly> </BdpConnectionString> |
Prosseguindo, acesse o “Data Explorer” e observe que agora temos um ítem “Firebird” o qual representa nossa “ponte” ao Firebird, veja a figura 1.
Figura 1 – Data Explorer
Para testar, vamos criar um nova aplicação ASP.NET e para isso, acesse o menu File | New | Asp.Net Web Application, de um nome que achar mais conveniente ou simplesmente clique em OK para confirmar a sugestão do Delphi. Estando no “Data Explorer”, clique da direito sobre “Firebird” e selecione “Add New Connection”, com isso será apresentada uma tela igual a figura 2.
Figura 2 – Adicionando nova conexão
Informe um nome para a conexão e clique OK. Feito isso, será adiciona a nova conexão, clique da direita sobre a mesma e selecione “Modify Connection”, com isso será apresentado o “Connections Editor”, conforme demonstra a figura 3.
Figura 3 – Connections Editor.
Como pode observar, não temos nada de estranho aqui e sim muito pelo contrário. No “Connections Editor” iremos informar o path do banco de dados, usuário, senha, ou seja, tudo que é necessário para a conexão com nosso banco de dados. Após configurar os parâmetros, clique no botão “Test” para certificar-se de que tudo está OK e caso positivo, clique em OK. Voltando ao “Data Explorer”, expanda nossa conexão clicando no (+) e poderá observar os ítens: Tables, Views e Procedures. Expanda o ítem Tables clicando no (+) irá visualizar a tabela CLIENTES. Clique sobre a tabela e arraste a mesma sobre seu WebForm. Com isso, automaticamente serão adicionados um componente BdpConnection e um BdpDataAdapter, nomeie como cnxClientes e adpClientes, respectivamente. Feito isso, vamos efetuar as configurações necessárias no adpClientes e gerar um objeto DataSet... Clique da direita sobre o adpClientes e selecione “Configure Data Adapter”, veja a figura 4.
Figura 4 – Configuração do Data Adapter.
Vá até a aba “DataSet”, clique na opção “New DataSet” e digite “dsClientes” e para finalizar clique OK, com isso será adicionado automaticamente um componente DataSet e para concluir a configurações dos componentes responsáveis ao acesso e manutenção no banco de dados, adicione um componente DBWebDataSource, disponibilizado na “Tool Palette” no grupo “DB Web”, nomeio como srcClientes e configure sua propriedade DataSource para dsClientes (que é o nosso componente DataSet gerado via adpClientes). Agora, vá ao evento OnApplyChangesRequest do srcClientes e adicione a seguinte instrução apresentada na listagem 3.
procedure
TWebForm_CadCli.srcClientes_OnApplyChangesRequest(sender:
System.Object; e: Borland.Data.Web.WebControlEventArgs); begin adpClientes.AutoUpdate; end; |
Listagem 3 – Código no evento OnApplyChangesRequest.
Até aqui, implementamos o “motor” de nosso simples cadastro, o qual irá permitir adicionar, alterar, excluir, enfim, fazer toda a manutenção necessária em nossa tabela CLIENTES. Vamos agora implementar a interface onde o usuário irá interagir com nosso aplicativo. Comece por adicionar um componente DBWebNavigator disponibilizado na “Tool Palette” no grupo “DB Web” o qual iremos nomear navClientes, configure a propriedade ButtonType para ButtonIcons, a propriedade DBDataSource para srcClientes e a propriedade TableName igual a CLIENTES. Após isso, adicione componentes “Label” (disponibilizado na “Tool Palette” no grupo “Web Controls”) e componentes “DBWebTextBox” (disponibilizado na “Tool Palette” no grupo “DB Web”), feito isso, iremos fazer a ligação destes DBWebTextBox com as colunas da tabela CLIENTES onde para isso iremos configurar a propriedade DBDataSource para srcClientes e a propriedade TableName igual a CLIENTES e a propriedade ColumnName para cada coluna da tabela. Na figura 5 apresentamos uma sugestão para o layout.
Figura 4 – Layout sugerido
Se todas as ligações estiverem corretas, nosso exemplo estará pronto e o próximo passo é só efetuar o teste, para isso, acesse o menu “Run” e escolha “Run Without Debugging”, poderia simplesmente teclar <F9>, contudo, a execução “sem debug” é bem mais leve, use <F9> somente quando necessitar utilizar o debug. A figura 5 demonstra nosso aplicativo em execução.
Figura 5 – Exemplo em execução
Conclusão
Nesta primeira parte demonstramos como efetuar a conexão com o Firebird utilizando a tecnologia BDP graças ao driver disponibilizado pelo Carlos Guzmán Álvarez, autor e mantenedor do Borland Data Provider For Firebird, bem como do Firebird .NET Provider, o qual iremos abordar na próxima edição da The Club Megazine, contudo, gostaria de ressaltar que trabalhar com BDP é muito mais simples e produtivo que os demais manage providers existentes para a plataforma .NET.
Autor: Alessandro Ferreira alessandro@theclub.com.br
Download
Clique aqui para baixar o exemplo apresentado neste artigo.