Utilizando Delphi Firebird Firedac

Download Utilizando Delphi Firebird Firedac

Post on 04-Oct-2015

452 views

Category:

Documents

78 download

DESCRIPTION

PAsso a passo para criar uma aplicao simples

TRANSCRIPT

<ul><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:1 </p><p> UTILIZANDO DELPHI + FIREBIRD + FIREDAC </p><p>EXEMPLO DE USO: TABLE e QUERY (RAD Studio) Delphi: Ambiente de desenvolvimento de aplicativos multilinguagens, multidispositivos e com uso de mltiplos bancos de dados. Firebird: Banco de Dados relacional que oferece recursos ANSI SQL-99 que rodam no Linux, Windows e plataformas Unix. Firedac: Biblioteca de Acesso Universal a Dados para o desenvolvimento de aplicaes para mltiplos dispositivos conectados a bancos de dados corporativos. Com sua poderosa arquitetura universal, a FireDAC possibilita acesso direto, nativo e de alta velocidade do Delphi e do C++Builder a InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix, DataSnap, dentre outros. Para o desenvolvimento do exemplo a seguir, foi adotado o RAD Studio XE5 e Firebird 2.5. BANCO DE DADOS Adotou-se auto incremento nos campos chave primria de cada tabela. </p><p>Na atividade, o intuito no apresentar as etapas para criao do Banco de Dados. Parte-se da premissa que o mesmo j tenha sido previamente elaborado. </p><p> /* ------------------------------- */ /* Project name: Trabalho GTI 1 */ /* Author: Andr Klunk */ /* Script type: Database script */ /* Created on: 2014-03-19 22:21 */ CREATE GENERATOR GEN_AUTOMOVEL; SET GENERATOR GEN_AUTOMOVEL TO 0; CREATE GENERATOR GEN_MARCA; SET GENERATOR GEN_MARCA TO 0; CREATE GENERATOR GEN_CIDADE; SET GENERATOR GEN_CIDADE TO 0; CREATE TABLE MARCA ( COD_MARCA INTEGER NOT NULL, NOME_MARCA VARCHAR(40) NOT NULL, CONSTRAINT PK_MARCA PRIMARY KEY (COD_MARCA) ); CREATE TABLE CIDADE ( COD_CIDADE INTEGER NOT NULL, NOME_CIDADE VARCHAR(40) NOT NULL, UF CHAR(2) NOT NULL, CONSTRAINT PK_CIDADE PRIMARY KEY (COD_CIDADE) ); CREATE TABLE AUTOMOVEL ( COD_AUTOMOVEL INTEGER NOT NULL, COD_MARCA INTEGER, MODELO VARCHAR(40) NOT NULL, PLACA VARCHAR(10), ANO_FABRICACAO INTEGER, </p><p> CONSERVACAO CHAR(1), OBS VARCHAR(200), CONSTRAINT PK_AUTOMOVEL PRIMARY KEY (COD_AUTOMOVEL) ); </p><p> ALTER TABLE AUTOMOVEL ADD CONSTRAINT MARCA_AUTOMOVEL FOREIGN KEY (COD_MARCA) REFERENCES MARCA (COD_MARCA); ALTER TABLE AUTOMOVEL ADD CONSTRAINT CIDADE_AUTOMOVEL FOREIGN KEY (COD_CIDADE) REFERENCES CIDADE (COD_CIDADE); SET TERM ^ ; CREATE TRIGGER TRG_MARCA1 FOR MARCA BEFORE INSERT AS BEGIN IF (NEW.COD_MARCA IS NULL) THEN NEW.COD_MARCA = GEN_ID(GEN_MARCA, 1); END ^ SET TERM ; ^ SET TERM ^ ; CREATE TRIGGER TRG_CIDADE1 FOR CIDADE BEFORE INSERT AS BEGIN IF (NEW.COD_CIDADE IS NULL) THEN NEW.COD_CIDADE = GEN_ID(GEN_CIDADE, 1); END ^ SET TERM ; ^ SET TERM ^ ; CREATE TRIGGER TRG_AUTOMOVEL1 FOR AUTOMOVEL BEFORE INSERT AS BEGIN IF (NEW.COD_AUTOMOVEL IS NULL) THEN NEW.COD_AUTOMOVEL = GEN_ID(GEN_AUTOMOVEL, 1); END ^ SET TERM ; ^ </p><p>Figura 1 - Modelo ER </p></li><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:2 </p><p> APLICAO DELPHI Consideraes Iniciais: </p><p>- Pasta de Trabalho adotada: C:\Sistemas\Trab1_2014\ para os arquivos cdigo do Delphi. - Pasta de trabalho adotada: C:\Sistemas\Trab1_2014\APP\ para o arquivo do Banco de Dados e </p><p>executvel. Iniciando o Desenvolvimento: - Criar uma nova Aplicao: File/New/VCL Forms Application Delphi - Salvar como: - Unit: UnitPrincipal.pas - Project: ProjetoTrab1_2014.dproj Gerar o Executvel dentro da Pasta Pretendida: Como o objetivo que o arquivo executvel seja compilado dentro da pasta C:\Sistemas\Trab1_2014\APP\, devemos proceder da seguinte forma: - Menu Project/Options: ser apresentada a tela demonstrada a Figura 2. No lado esquerdo, selecionar a primeira opo (Delphi Compiler). Na parte direita, opo (Output directory), definir o path para gerao do executvel. </p><p> Figura 2 - Definio do caminho para gerao do executvel </p></li><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:3 </p><p> Formulrio Principal: Hora de definir as propriedades do Formulrio Principal: BorderIcons: biSystemMenu BorderStyle: bsSingle Caption: Trabalho 1 GTI FAI 2014 FormStyle: fsMDIForm </p><p>KeyPreview: True Name: frmPrincipal Position: poMainFormCenter WindowState: wsMaximized. </p><p> Figura 3 - Formulrio Principal </p><p>No Formulrio Principal Incluir: - Incluir um MainMenu: Cadastro com as opes: Cidades, Marcas, Automveis. - Incluir um ToolBar com os botes: Cidades, Marcas, Automveis, Fechar e um Separador. - Incluir um ImageList e vincular tanto ao MainMenu, quanto a ToolBar. (Imagens disponveis). - Incluir uma StatusBar com trs StatusPanels </p><p>o 1 StatusPanel: Largura 200; Text: Copyright Nome do Aluno (2014) o 2 StatusPanel: Largura 150; Aligment: taCenter; (Text ir receber a data e hora atualizada) o 3 StatusPanel: Aligment: taRightJustify; Receber no text a verso do Sistema. </p><p>- Timer: responsvel em atualizar a data e horrio na StatusBar. o Cdigo: StatusBar1.Panels[1].Text := DateTimeToStr(Now); </p><p>Para informar a verso do Sistema, inicialmente haver a necessidade de utilizar uma funo especfica para tal. Para facilitar as atividades, todas as funes a serem utilizadas nesse Artigo, foram agrupadas numa Unit especfica, denominada RotinasGerais.pas. </p></li><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:4 </p><p> Importando uma Unit no Projeto: Inicialmente deve-se copiar a Unit at a pasta na qual constam nossos arquivos fontes: C:\Sistemas\Trab1_2014\. Feito esse procedimento, com nosso Projeto Aberto, basta adicionar a referida Unit (RotinasGerais). - Menu Project/Add to Project Vinculando Units: </p><p>Com a Unit Rotinas Gerais adicionada ao projeto, basta agora fazer com que a mesma seja visvel no formulrio principal. - Com o formulrio principal selecionado, menu File/Use Unit. - Selecionar na lista a Unit pretendida, depois OK. Basta agora no Evento OnShow do Formulrio Principal, invocar a funo GetBuildInfo, presente na Unit Rotinas Gerais, e lanar o valor na StatusBar. Cdigo: StatusBar1.Panels[2].Text := GetBuildInfo; </p><p>Utilizando o Data Module (Mdulo de Dados): Data Module: trata-se de um container de componentes no visuais que geralmente so utilizados em aplicaes de banco de dados e web. Em tempo de projeto (design time), um Data Module semelhante a um Form, mas em tempo de execuo (run time) ele existe somente na memria. Imagine como se fosse um Form invisvel no qual se pode incluir componentes invisveis da VCL do Delphi. Para acrescentar um Data Module ao nosso projeto, cuja funo ser receber todos os componentes de acesso e manipulao de dados, faa o seguinte: </p><p> - File/New/Other - Na Janela que abre, no lado esquerdo selecione a opo Delphi Files. - Na parte central, basta clicar no item Data Module. - Com o Data Module inserido, Salve a Unit como UnitDM.pas. - Propriedade Name: DM </p><p>Figura 4 - Vincular Units </p><p>Figura 5 - Inserir Data Module </p></li><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:5 </p><p> Componentes de Conexo ao Banco de Dados: - Da Tool Palette (Paleta de Componentes) FireDAC. Adicione os components: FDConnection e FDTransaction. (No Delphi XE4, os componentes correspondentes so: ADConnection e ADTransaction). - Da Paleta FireDAC UI, adicione o componente FDGUIxWaitCursor. (No Delphi XE4, ADGUIxWaitCursor). - Da Paleta FiredDAC Link, acione o componente FDPhysFBDriverLink. (No Delphi XE4, ADPhysIBDriverLink) Passamos ento a configurar a conexo ao banco de dados, dando Clique Duplo sobre o componente FDConnection (ADConnection). </p><p>Figura 6 - Configurao do componente FDConnection </p><p>- Em Driver ID, seleciona-se o SGBD. No nosso exemplo, adotamos o Firebird. Na Verso XE5 do Delphi, usa-se o driver FB, j na verso XE4, faz-se necessrio o uso do driver IB. Ambos funcionaro da mesma forma. - Na opo Database, localiza-se o arquivo do Banco de Dados desejado. No exemplo: C:\Sistemas\Trab1_2014\APP\BDTRAB1_2014.FDB - Em User_Name o usurio padro do Firebird: SYSDBA (em maisculo). - Em Password a senha padro: masterkey (em minsculo). - Altere a propriedade LoginPrompt do componente FDConnection (ADConnection) para False; OBS: Os demais componentes inseridos no necessitam de configuraes especficas. </p></li><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:6 </p><p> Componente de Acesso s Tabelas do Banco de Dados O componente Table, da mesma forma como o componente Query, podem ser utilizados para acessar os registros das tabelas do Banco de Dados. Para fins de produtividade, o componente Query o indicado uma vez que no carrega todos os registros na memria. Vale lembrar que uma Query pode fazer a funo de um Table, j o Table no pode fazer todas as funes de uma Query. Imagine uma tabela em seu aplicativo com 50 mil registros, e voc tendo a necessidade de gravar mais um. Usando um Table o processo vai carregar os 50 mil registros na memria e talvez o seu aplicativo d uma congelada se estiver rodando numa rede. Se usar uma instruo Sql ("insert into.."), passada para uma Query, o registro ser gravado e voc nem vai perceber Utilizando o Table para conectar na tabela Marca Da Paleta FireDAC, adicione o componente FDTable (ADTable). Configure as seguintes propriedades: - Name: tblMarca - Connection: FDConnection1 (ADConnection1) - TableName: Marca (Onde so listadas as tabelas contidas no BD) Configuradas as propriedades, d um duplo clique sobre o componente tblMarca. Na telinha que aparecer, clique com o boto direito do mouse na parte central e selecione a opo Add all fields (adicionar todos os campos). Para funcionar corretamente a questo do auto incremento, na lista de campos, selecione o campo COD_MARCA, e no Object Inspector altere a propriedade ReadOnly para True. - Active: True. (Caso tenha erro de configurao, ao ativar o mesmo apresentado). Terminada a configurao do Table, passamos a inserir o componente DataSource, presente na paleta Data Access. Aps inserido, altere no Object Inspector a propriedade Name para dsMarca e a propriedade DataSet para tblMarca. Utilizando o Query para conectar na tabela Cidade </p><p>Da Paleta FireDAC, adicione o componente FDQuery (ADQuery). Configure as seguintes propriedades: - Name: tblCidade - Connection: FDConnection1 (ADConnection1) Configuradas as propriedades, d um duplo clique sobre o componente tblCidade. No editor que aparecer, ser necessrio informar o cdigo SQL select, responsvel para trazer os dados da tabela Cidade. Cdigo: Select from Cidade Para testar clique no boto Executar do lado direito, depois OK. Feito esse procedimento, da mesma forma como tambm foi feito anteriormente para a tabela Marca, usando o Table, vamos adicionar os </p><p>campos da tabela Cidade ao componente Query. </p></li><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:7 </p><p> Para tal, faz-se necessrio clicar com o boto direito do mouse sob o tblCidade, e no submenu selecionar Fields Editor, abrindo a janela para adicionar os campos. - Nessa janela, clique com o boto direito do mouse na rea central, opo Add all fields (Adicionar todos os campos). - Para funcionar corretamente a questo do auto incremento, na lista de campos, selecione o campo COD_CIDADE, e no Object Inspector altere a propriedade ReadOnly para True. - Active: True. (Caso tenha erro de configurao, ao ativar o mesmo apresentado). O passo seguinte ser adicionar ao Data Module o componente FDUpdateSQL (ADUpdateSQL) presente na Paleta FireDAC, permitindo que os dados possam ser editados, inseridos e deletados. Esse componente acoplado a uma Query para desempenhar essas funes. No nosso exemplo, o mesmo ser vinculado a Query tblCidade. Altere as propriedades do componente da seguinte forma: - Name: updCidade - Connection: FDConnection1 (ADConnection1) Retorne agora e selecione o componente tblCidade, marcando a propriedade UpdateObject para updCidade. Feito isso, torna-se possvel adicionar os cdigos SQL responsveis pela manipulao dos registros. D um duplo clique sobre o componente updCidade. Caso seja exibida uma mensagem, apenas confirme clicando em Yes. Abrir o editor de SQL. </p><p>Figura 7 - Editor de SQL Tabela Cidade </p></li><li><p>Sociedade Educacional de Itapiranga - FAI Faculdades Curso: GESTO DA TECNOLOGIA DA INFORMAO Disciplina: PROGRAMAO II </p><p>Professor: ANDR KLUNK Perodo: 3 semestre Ano: 2014 PG:8 </p><p> Nesse editor, certifique-se que na primeira coluna esteja selecionado o campo chave primria da tabela, na segunda coluna, todos os registros selecionados, o que ocorre por padro. - Para gerar os cdigos SQL automaticamente, basta clicar no boto Generate SQL. Depois s confirmar clicando em OK. Para finalizar, basta inserir o componente DataSource, presente na paleta Data Access. Aps inserido, altere no Object Inspector a propriedade Name para dsCidade e a propriedade DataSet para tblCidade. Utilizando o Query para conectar na tabela Automvel O processo idntico ao adotado item anterior, bastando alterar somente algumas propriedades dos componentes para serem associadas dessa vez tabela Automoveis. Um diferencial a ser adotado nesta tabela, ser a configurao de uma mscara de edio, j que encontramos o campo PLACA, que passvel de receber esse parmetro, por ser sempre composto por 3 letras seguido por 4 nmeros. As mscaras podem ser adotadas a campos, cuja formataao seja sempre um padro definido, como telefones, datas, horrios, CPFs, CEPs, etc. Vamos aos procedimentos. Da Paleta FireDAC, adicione o componente FDQuery (ADQuery). Configure as seguintes propriedades: - Name: tblAutomovel - Connection: FDConnection1 (ADConnection1) Configuradas as propriedades, d um duplo clique sobre o componente tblAutomovel. No editor que aparecer, ser necessrio informar o cdigo SQL select, responsvel para trazer os dados da tabela Automovel. Cdigo: Select from Automovel Para testar clique no boto Executar do lado direito, depois OK. Feito esse procedimento, vamos adicionar os campos da tabela Automovel ao componente Query. Para tal, faz-se necessrio clicar com o boto direito do mouse sob o componente tblAutomovel, e no submenu selecionar Fields Editor, abrindo a janela para adicionar os campos. - Nessa janela, clique com o boto direito do mouse na rea central, opo Add all fields (Adicionar todos os campos). - Para funcionar corretamente a questo do auto incremento, na lista de campos, selecione o campo COD_AUTOMOVEL, e no...</p></li></ul>

Recommended

View more >