Sei sulla pagina 1di 7

Cadastro em FireBird usando o driver UIB FireBird15.

Ol amigos do Planeta Delphi e um prazer poder colaborar com esse brilhante site com artigos semanais, nesse meu primeiro artigo vou explicar um pouco sobre o FireBird 1.5 fazendo um cadastro simples, e vamos conhecer o driver DBexpress especifico para o Fb. At certo tempo atrs eu ficava me perguntando se o driver Interbase era o adequado para acessar o Firebird e cheguei concluso que est ficando cada vez mais incompatvel usar driver do InterBase para acesso ao Firebird com dbExpress. Andei pesquisando e encontrei um driver especifico para acesso ao firebird. Unified InterBase O UIB (Unified InterBase) que produzia somente componentes de acesso a dados, agora possui um driver free para acesso a tecnologia dbExpress para Firebird, InterBase e Yaffil. Acesse o site

www.progdigy.com para saber mais sobre o produto.


No site vc pode baixar somente os fontes da DLL vc tem que copilar e gerar a mesma, mais para facilitar esse nosso artigo vou disponibilizar a DLL (dbexpUIBfire15.dll), e os arquivos

dbxdrivers.ini e o dbxconnections.
Obs: Se o artigo for bem aceito pelos os usurios do site farei uma futura publicao sobre a gerao da DLL s Copiando a DLL Aps baixar os arquivos citados acima copie a DLL para a pasta bin do delphi e para a pasta onde esta salva sua aplicao, e os ini para a pasta C:\Arquivos de programas\Arquivos comuns\Borland Shared\DBExpress abra o arquivo dbxdrivers.ini e abaixo da chave Installed Drivers adicione: Exemplo do dbxdrivers.ini modificado. Installed Drivers] ... UIB FireBird15=1 Apos, adicione o seguinte Cdigo, logo abaixo do ltimo driver: [UIB FireBird15] GetDriverFunc=getSQLDriverINTERBASE LibraryName=dbexpUIBfire15.dll VendorLib=fbclient.dll BlobSize=-1 CommitRetain=False Database=database.fdb ErrorResourceFile= LocaleCode=0000 Password=masterkey

RoleName=RoleName ServerCharSet= SQLDialect=3 Interbase TransIsolation=ReadCommited User_Name=SYSDBA WaitOnLocks=True Se no quiser alterar e s copiar os ini que esto no downloads. Vamos a pratica: Criando o Banco de Dados no FireBird 1.5 Vamos usar para usar nesse exemplo o ibexpert na sua verso free. http://www.ibexpert.com/download.php V ao menu DataBase / Create DataBase.

Server= Local
DataBase = C:\ planetadelphi.fdb Local onde vai ser criado o banco Client Library File = C:\Arquivos de programas\Firebird\Firebird_1_5\bin\fbclient.dll Username = SYSDBA PassWord = masterkey CharSet = WIN1252 SQL Dialect = Dialect 3 De um clique em ok, espero abrir a janela Database Registration.

Server Sersion = Firebird 1.5


DataBase Alias = planetadelphi Client Library File = C:\Arquivos de programas\Firebird\Firebird_1_5\bin\fbclient.dll Os restos dos campos j vm preenchidos, podemos agora clicar em Testar Conexo e clicar em OK, observe que em database explore apareceu o nosso banco planetadelphi d dois clique nele para conectar, ou v ao menu DataBase at Connect to DataBase. Bom agora s nos resta criar ao tabelas, clique o boto direito em tables / new table.

NEW_TABLE = Nome da tabela


NEW_FIELD = Nome do campo Vamos criar duas tabelas Clientes e Cidades. Clientes Campos Id_cli NomCli Id_Cid Cidades Campos Id_cid NomCid Tipo de campo Intenger Varchar(35) Descrio Cdigo da tabela Cidades PK Chave Primaria Campo Nome da Cidade Tipo de campo Intenger Varchar(35) Intenger Descrio Cdigo da tabela clientes PK Chave Primaria Campo Nome do Cliente Cdigo de ligao a tabela Cidade

Ctrl+F9 para copilar e clique em Commit. Criando autoincremental no FireBird Vamos criar um campo autoincremento ainda usando a parte grfica do ibexpert. no DataBase Explorer clique sobre a tabela Clientes e use ctrl + o para editar a tabela. Agora d um duplo clique no campo id_cli, na janela edit field idcli v na opo AutoIncrement /Generator e marque o checkbox Create Generator e na seo Trigger Create Trigger. Exemplo da generator e trigger criada. CREATE GENERATOR GEN_CLIENTES_ID; CREATE TRIGGER CLIENTES_BI FOR CLIENTES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.ID_CLI IS NULL) THEN NEW.ID_CLI = GEN_ID(GEN_CLIENTES_ID,1); END Pronto agora faa o mesmo com a tabela Cidades.

Criando uma aplicao no Delphi 7 Para criar uma nova aplicao no delphi 7 clique no File New Application. No form que e criado altere as seguintes propriedade: Name Caption Position frmCadastro Cadastro com DBExpress e UIB FireBird15 poScreenCenter

Crie agora um DataModule e mude seu name para DM e salve a sua unit como untDm, salve a unit1 como untCadastro e nome do projeto como UIBFireBird15. Vamos usar como j foi citada a paleta dbexpress apresentando o driver UIB FireBird15. Obs: Nesse artigo no vou explicar todos os recursos do DbExpress isso vai ficar para um prximo artigo.

Adicione ao DM um SQLConnection1, d dois cliques no mesmo para abrir o seu editor clique no boto add Connection, escola o drive UIB FireBird15 e em Connection name coloque planetadelphi que e o nome da nossa conexo e clique em Ok.

Configure as propriedades como na figura acima e clique no boto Test Connection. A figura abaixo mostrar o erro que o sistema vai apresentar se no estiver a DLL fbclient.dll na pasta do seu programa copie a mesma para a pasta onde esto as suas fontes e pronto conexo realizada, clique em ok.

Altere as seguintes propriedades no Objector Inspector, Login Prompt = False e Connected = True.

Obs: Em alguns casos e aconselhvel abrir a conexo sobre demanda, mais nesse exemplo no vamos entra em detalhe sobre essa parte. Insira agora um SQLDataSet1 + DataSetProvider1 + ClientDataSet1 + DataSource1, vamos configur-los. SQLDataSet1 SqlConnection = SQLConnection1 Name = sdsClientes CommandText = select * from CLIENTES Active = True D dois clique no sdsClientes e aperte ctrl+F para adicionar todos os fields no editor. Uma coisa importante a ser lembrada e que o campo ID_CLI tem que esta com a sua propriedade Required = False, depois v em ProviderFlags e coloque pflnUpdate = False pronto agora esses campos no ser mais solicitados na hora de confirmar um registro j que o mesmo vai ser gerado (autoincrementados) usando a rotina acima.

DataSetProvider1 dataset Name ClientDataSet1 Providername Name Active Adicione todos os campos como no sdsClientes. DataSource DataSet Name cdsClientes dsClientes dspClientes cdsClientes True sdsClientes dspClientes

Agora faa o mesmo processo para a tabela de Cidades com na figura abaixo:

Criando a tela de Cadastro de Clientes Abra o editor de campos do cdsClientes e araste todos os campos para o Form frmCadastro. Adicione um DBNavigator da paleta (DataControls) e um Button da paleta (Standard), altere as seguintes propriedades do DbNavigator - DataSource para dm.dsClientes. Se voc rodar a aplicao vai ver que est funcionado corretamente se der algum erro revise os passos acima. Obs: E importante lembrar que tem que deixar em False a opo required do campos chaves das tabelas. Prontinho agora s falta dar um.ApplyUpdates(0); para gravar esse dados no banco. No clientdataset os dados ficam em memria e quando voc usa o post para gravar ele e salvo na memria, os dados s so gravados no banco, com o comando applyUpdates. Ento no evento onclick do boto digite: dm.cdsClientes.ApplyUpdates(0); dm.cdsClientes.refresh; // atualiza os dados no clientdataset

Crie tambm o form de Cadastro de Cidades: FrmCidades untCidades.

Obs: Os clientdatasets esto fechados e aconselhvel que voc abre os mesmos ao criar o datamodule ou quando voc criar o form referente ao clientdataset. Lembretes: 1 - Como obter acesso a uma unit ? ALT + F11. 2 - Como ligar o DBLookupComboBox para trazer as cidades no cadastro do cliente ? Use as seguintes propriedades do mesmo: datasource : tabela principal datafield: campo de ligao entre as duas tatelas - Chave estrangeira list source: outra tabela a ser usada datafied: campo a ser monstrado no DBLookupComboBox. keyfield: chave primaria da tabela a ser usada.. Por essa semana e s pessoal para mais detalhe baixe o exemplo no link abaixo. Se estiver alguma duvida entre em contato comigo pelo e-mail abaixo. Download Srgio de Castro Guedes Analista da Mais Sistemas inteligentes Sergio_work2@hotmail.com

Potrebbero piacerti anche