Neste artigo Utilizaremos as Ferramentas Delphi 2009 com DBExpress 5 os drivers TBODBXFB 0.9 para Firebird e os drivers Nativos do Delphi para os demais SGDBS.
Nas edições 53 e 60 da revista Active Delphi foram apresentados alguns artigos de conexão utilizando o driver TBODBXFB e como realizar a sua Instalação. Para Baixar o Instalador do Driver TBODBXFB no mesmo pode-se encontrar manuais de como realizar a Instalação e os possíveis erros e suas soluções.
Nessa Primeira Parte do Artigo iremos iniciar com o Firebird 2.1, se você ainda não tem instalado baixe-o em www.firebirdsql.org. Para gerenciar o banco de dados, utilizaremos o IBExpert, que é uma das melhores front-end para administração de banco de dados Interbase e Firebird.
Considerando que seu Firebird e IBExpert estejam devidamente Instalados, vamos agora para a criação do banco de dados do exemplo, com a execução do seguinte script;
SET SQL DIALECT 3;
SET NAMES WIN1252;
CREATE DATABASE 'localhost:C:\DBExpress\BDACTIVE.fdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1252;
/**** Tables ****/
CREATE TABLE BANCOS (
CHAVE INTEGER NOT NULL,
BANCO INTEGER NOT NULL,
DESCRICAO VARCHAR(25) NOT NULL,
AGENCIA INTEGER,
CONTA INTEGER,
DVCONTA INTEGER
);
/**** Primary Keys ****/
ALTER TABLE BANCOS ADD CONSTRAINT PK_BANCO PRIMARY KEY (CHAVE);
Após a Criação do Banco de Dados abra o Delphi e vá em “File – New - VCL Forms Application – Delphi” conforme imagem 1 para iniciar a criação da Aplicação.
Imagem 1 – Criação do Projeto
Altere a Propriedade Name para “FRMDemoDBExpress”, Caption para “Demo Conexão DBExpress” e Position para “poDesktopCenter” após realizar a alteração clique em “File – Save All” salve a unit como “uDemoDBExpress.pas” o Projects como “DemoDBExpress.dproj”.
Adicione ao Projeto o componente TpageControl renomeie para “pcPrincipal”, altere a propriedade Align para alClient, clique com o botão direito no “PageControl” e selecione a opção “New Page” conforme Imagem 2 e renomei para “tsFirebird”
Imagem 2 – Adicionando Page
Adicione ao Projeto os Componentes TSQLConnection, TSQLDataSet, TDataSetProvider, TClientDataSet e TDataSource. Renomeie para SQLCFireBird, SQLDSFirebrid, DSPFirebird, CDSFirebird e DSFirebird para que fique de de forma clara cada SGDBS.
O Assistente de Criação de Conexão do DBExpress foi reformulado fazendo com que apenas se utilize o Data Explorer o que não havia necessidade no Delphi 7 para acessar vá em View – Data Explorer será aberto no lado Direito da Tela conforme Imagem 3.
Imagem 3 – Data Explorer
Selecione o Driver TBODBXFB clique com o Botão Direito do Mouse e vá na opção Add New Connection abrir uma tela com as opções Provider Name que vira com o Driver já previamente selecionado coloque o Nome da Conexão como “DemoDBExpress” após a criação da conexão necessitamos selecionar a suas opções para isso clique com o Botão Direito na Conexão e vá em Modify Connection ira abir uma janela onde definiremos os parâmetros Server Name, Database Name, User Name e Password. No “Server Name” é o parâmetro onde definiremos o IP ou Nome do Servidor do Banco de Dados, “Database Name” será definido o caminho local da Base de Dados no Servidor, “User Name e Password” é o Usuário e Senha que iremos utilizar para realizarmos a Conexão, no nosso caso como estamos trabalhando localmente os parâmetros ficaram como da Imagem 4.
O Test Connection não Funcionara devido a erro do driver que está sendo corrigido pelo desenvolvedor, caso haja necessidade de alterar a porta do Serviço do Firebird clique na opção Advanced que o mesmo tem a opção “Port” que pode se alterada.
Imagem 4 – Parâmetros Conexão Firebird
Após realizarmos a configuração da Conexão temos que seleciona la para isso Abra o Object Inspector do SQLCFirebird na opção ConnectionName selecione a Conexão que criamos DemoDBExpress altere a propriedade LoginPrompt para False, finalizamos a criação da nossa Conexão agora utilizaremos em nossa aplicação.
No SQLDSFirebird na propriedade SQLConnection selecione o SQLCFirebird e vá no CommandText e adicione a SQL “select CHAVE, BANCO, DESCRICAO, AGENCIA, CONTA, DVCONTA from BANCOS” após a inserção da SQL de um duplo clique no componente será aberto o Fields Editor clique com o Botão Direito e vá em Add all Fields, após adicionarmos os Fiels temos que configurar as Provider Flags de cada Campo o que implica diretamente na velocidade de nossa aplicação, as opções são:
pfInKey = Se marcado como true, o DSP entenderá que o campo é uma/faz parte da chave primária da tabela. pfInUpdate = Se marcado como true, o DSP entenderá que o campo será atualizável. pfInWhere = Se marcado como true, indicará que este campo poderá fazer parte do where nos sql's de alteração (Updates e Deletes). pfHidden = Se marcado como false, o DSP ignora o campo. Na nossa aplicação Ficara da seguinte forma:
Opções | CHAVE | BANCO | DESCRICAO | AGENCIA | CONTA | DVCONTA |
pfInUpdate | True | True | True | True | True | True |
pfInWhere | True | False | False | False | False | False |
pfInKey | True | False | False | False | False | False |
pfHidden | False | False | False | False | False | False |
Após configuramos as opções vamos Configurar o DataSetProvider, ClientDataSet e o DataSource, que terá as seguinte opções: DataSetProvider: Dataset “SQLDSFirebird”, UpdateMode “upWhereKeyOnly” e a Options “[poAutoRefresh,poPropogateChanges,poUseQuoteChar]”. ClientDataSet: ProviderName “DSPFirebird” após a seleção do Provider de um duplo clique no componente será aberto o Fields Editor clique com o Botão Direito e vá em Add all Fields e Configure o Provider Flags de cada Campo.
DataSource: DataSet “CDSFirebird”.
Adicione os Fields do ClientDataSet ao Form, TDBNavigator renomeio para dbnFireBird, DBGrid renomeio para dbgFirebird e altere os DataSource para “DSFirebird”, TBitBtn renomeio para bitFirebird no OnClick do Botão adicione o comando “CDSFirebird.ApplyUpdates(0);” e TBitBtn renomeio para bitConectar no OnClick do Botão adicione o comando abaixo:
Conclusão:
Nessa nossa primeira parte vimos como criar uma conexão pelo DBExpress em tempo de Projeto futuramente veremos como passar os parâmetros em tempo de execução e conexão utilizando outros SGDBs como o Oracle 10G XE, dentre outras funcionalidade oferecidas pelo DBExpress e o CDS. Obrigado e até a próxima.
Parabens pelo post, sou programador Delphi tbm, quando puder da uma olhadinha no meu blog.
ResponderExcluirAbração...