Firebird .NET Provider
O poder do driver ADO.NET do firebird
· Introdução
Pra quem ainda não conhece o Firebird.NET provider é um driver de acesso ao firebird para a plataforma Microsoft® .NET®, com esse driver é possível acessar o banco de forma bastante fácil, neste artigo irei ensinar passo a passo como instalá-lo integrando-o junto ao delphi for .NET., explicar suas principais funcionalidades e apresentar alguns exemplos práticos de como utilizá-lo desde a conexão ao banco até a manipulação de backups e usuários.
Em primeiro lugar você deve fazer o download do driver bem como do próprio firebird 1.5 caso já não o tenha. Você os encontra no site oficial: http://www.firebirdsql.org/ , até o final da edição deste artigo as últimas versões estáveis são a 1.7 do driver e a 1.5.3.x. do firebird.
· Instalando o Firebird.NET Provider 1.7 e integrando seus componentes com o delphi 2005/2006
A instalação deste provider é bem simples, faça o download do arquivo de instalação e instale normalmente, nenhuma opção adicional será necessária, depois de instalado vamos integrar ele ao delphi para que possamos trabalhar em modo de design com seus componentes, abra o delphi e vá ao menu Component>Instaled .NET Components (lembre-se que se estiver usando o delphi 2006 a personalidade “Delphi for the Microsoft .NET Framework” deve ser carregada para que essa opção esteja disponível), na tela que se abre selecione a guia “.NET Components”.
Imagem 1
Logo abaixo de uma lista de assemblys .NET você encontra um campo “Add components” em Category digite “Firebird” sem aspas e então clique em “Select an Assembly” selecione a pasta “C:\Arquivos de programas\FirebirdNETProvider1.7\” e então selecione o arquivo: “FirebirdSql.Data.Firebird.dll”
Imagem 2
Clique em abrir e então clique em ok, pronto nosso driver está integrado ao design time do delphi, você pode conferir criando uma nova aplicação Winforms e verificando na toolpalete 4 componentes na seção “Firebird”, são eles: FBCommand, FBCommandBuilder, FBConnection e FBDataAdapter.
Imagem 3
· Primeiros passos
Agora que instalamos e integramos o driver ao delphi já estamos aptos a começar, vou ensinar agora como usar o FBConnection, conectar-se a base de dados, utilizar transações, extração de metadata e outros.
Componente FBConnection
· Criando a primeira Connectionstring:
Crie um novo projeto WinForms Application e no formulário coloque um FBConnection, note na object inspector a propriedade “ConnectionString” clique no botão desta propriedade e a tela a seguir será exibida:
Imagem 4
1. O campo “Data Source” deve ser preenchido com o endereço IP onde seu servidor de banco de dados se encontra instalado, no meu caso o servidor está na própria máquina eu poderia deixar em branco ou digitar localhost;
2. O campo “Data Source Port” serve para indicar em qual porta o seu servidor de banco de dados está operando, a porta padrão é a 3050;
3. Em “Dialect” você deve escolher o Dialeto da conexão com o banco de dados, o dialeto padrão é o 3;
4. Em “Charset” você deve selecionar o Charset do seu banco de dados, o Charset padrão é o NONE;
5. O campo Database, é o caminho completo para a base de dados, ex: C:\Arquivos de programas\Firebird\Firebird_1_5\examples\EMPLOYEE.FDB
6. Em login coloque o usuário e senha do seu banco de dados, padrão user = SYSDBA e password = masterkey, você pode definir também uma Role pra esse login ou simplesmente deixar o campo Role em branco.
Em “Connection Settings” você encontrará o sistema de connections pooling, se estiver habilitado, a conexão é mantida em memória, assim se você fechar o FBConnection e abrir denovo ele irá reaproveitar esta conexão, tornando mais rápido o processo. Você pode definir o tempo que a conexão ficará armazenada no pool após ser fechada no campo Life Time, se deixar como 0 a conexão ficará no pool até o objeto connection ser destruído. Neste grupo você também encontra a propriedade timeout que é o tempo que o FBConnection irá tentar se conectar antes de retornar um erro (caso a conexão não seja realizada com sucesso). O Packet size serve para indicar o tamanho dos pacotes que serão transmitidos na conexão com o servidor, e por último o Server Type que serve para definir se seu aplicativo vai se conectar a servidor Super ou Classic ou a servidor Embeded.
Agora que sabemos pra que serve cada um dos elementos da connectionstring editor vamos nos conectar a um banco de testes, você pode usar o banco de dados de exemplo que vem com o firebird: C:\Arquivos de programas\Firebird\Firebird_1_5\examples\ EMPLOYEE.FDB, copie ele para uma outra pasta para que você tenha sempre uma cópia limpa dele para testar outros exemplos, vamos moldar a connectionstring da seguinte maneira:
Imagem 5
Lembre-se de substituir o caminho C:\ClubeDelphi\Firebird .NET pelo caminho para onde você copiou o banco de dados EMPLOYE.FDB. Clique em “Test” e veja se a mensagem Connection successful aparece, se sim clique em Accept, veja que agora na propriedade connectionstring está preenchida da seguinte forma:
User=SYSDBA;Password=masterkey;Database=C:\ClubeDelphi\Firebird.NET\EMPLOYEE.FDB;
DataSource=;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=0;
Connection timeout=15;Pooling=True;Packet Size=8192;Server Type=0
Com base nessa string você pode alterar a conexão via código. Veja um exemplo:
function BuildConnectionString(Database, Servidor, User, Pass: System.String): String; begin Result := User=+User.ToUpper+;+ Password=+Pass+;+ Database=+Database+;+ DataSource=+Servidor+;+ Port=3050;+ Dialect=3;+ Charset=NONE;+ Role=;+ Connection lifetime=0;+ Connection timeout=15;+ Pooling=False;+ Packet Size=8192;+ Server Type=0;; end; |
Usaríamos assim: FbConnection1.ConnectionString := BuildConnectionString(C:\ClubeDelphi\Firebird .NET\ EMPLOYEE.FDB,localhost,SYSDBA,masterkey);
ou ainda usar a classe FbConnectionStringBuilder:
function BuildConnectionString(ArquivoFDB: System.String): System.String; var FbConnectionStB: FirebirdSQL.Data.Firebird.FbConnectionStringBuilder; begin FbConnectionStB := FirebirdSQL.Data.Firebird.FbConnectionStringBuilder.Create; try FbConnectionStB.UserID := SYSDBA; FbConnectionStB.Password := masterkey; FbConnectionStB.DataSource := localhost; FbConnectionStB.Database := ArquivoFDB; FbConnectionStB.Port := 3050; FbConnectionStB.Dialect := 3; FbConnectionStB.Charset := NONE; FbConnectionStB.ConnectionLifeTime := 0; FbConnectionStB.ConnectionTimeout := 15; FbConnectionStB.Pooling := True; FbConnectionStB.PacketSize := 8192; FbConnectionStB.ServerType := 0; Result := FbConnectionStB.ConnectionString; finally FbConnectionStB.Free; end; end; |
Para usar faça assim:
FBConnection1.ConnectionString := BuildConnectionString(C:\ClubeDelphi\Firebird .NET\ EMPLOYEE.FDB);
Note que isso é só uma demonstração de utilização, um exemplo de como é fácil usar estas funções para configurar diferentes FBConnections sem necessidade de repetição de código, existirão também diversas situações que você irá precisar usar o FbConnectionStringBuilder de outra forma.
Vamos ver agora os principais métodos do FbConnection, para que servem e como aplicá-los:
1. CreateDatabase – Cria um novo banco de dados de acordo com a connectionstring passada.
2. DropDatabase – Apaga um banco de dados especificado na connectionstring passada.
3. BeginTransaction – Inicia uma transação retornando um objeto FBTransaction.
4. ChangeDatabase – Alterna a conexão do banco de dados para outro arquivo.
5. Close – Fecha a conexão ativa.
6. CreateCommand – Cria um objeto FBCommand já com sua conexão apontada para o objeto FBConnection
7. GetSchema – Serve para retornar os metadados, incluindo também objetos de sistema do banco.
8. Open – Abre a conexão com o banco de dados.
Exemplos de utilização dos métodos ...
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.