Banco de Dados Firebird Em Delphi

Embed Size (px)

Text of Banco de Dados Firebird Em Delphi

LINGUAGEM DE PROGRAMAO IICriao de Aplicativos em Delphi com Banco de Dados Firebird

IntroduoO objetivo do curso desenvolver aplicaes com Banco de Dados em Delphi. Iremos utilizar o Delphi7 como ambiente de programao, o FireBird como SGBD e como ferramentas de administrao de Banco de Dados o IBOConsole. Alguns Links Interessantes http://www.comunidade-firebird.org http://www.firebird.com.br/download.php http://www.firebase.com.br http://www.linhadecodigo.com.br http://www.angelo.com.br http://www.webmundi.net http://www.activedelphi.com.br http://www.delphi.nack.com.br http://www.delphibr.com.br http://www.edudelphipage.com.br http://www.guiadodelphi.com.br http://www.forumweb.com.br http://superdownloads.ubbi.com.br http://www.reddevil.eti.br Firebird A partir do ano de 2000, um grupo de desenvolvedores criou o projeto Firebird. Trata-se de um SGBD baseado na verso 6 do banco de dados relacional Interbase da Borland. Assim como aconteceu com o Linux, o projeto do FIREBIRD est aberto para todos que queiram contribuir para seu aprimoramento, bugs tendem a ser mais rapidamente resolvidos e um maior nmero de aprimoramento tende a ser incorporado em um menor espao de tempo. O FIREBIRD est disponvel livremente em diversas plataformas: Windows, Linux, SOC UNIX (em teste), Solaris, HP-Ux, Mac-Os. Nota: Em nosso curso iremos desenvolver um aplicativo completo para que o aluno possa relacionar os conceitos de banco de dados e Delphi com uma aplicao real. Trata-se um SISTEMA DE CONTROLE DE VENDAS que comearemos a desenvolver agora.

2

O esquema abaixo visa esclarecer dvidas referentes ao papel do SGBD, do Banco de Dados, do Aplicativo, do Programador e dos Usurios:

Usurios

APLICATIVO (VENDAS.DPR) Desenvolvido em uma linguagem de programao, no nosso caso desenvolveremos um aplicativo de controle de vendas utilizando a linguagem Delphi.

SGBD (Firebird) O Sistema Gerenciador de Banco de Dados tem como funo gerenciar as operaes a serem realizadas no Banco de Dados. Algumas tarefas do SGBD: verificar duplicidade de chave primria, campos obrigatrios, existncia de chave primria em outra tabela para uma chave estrangeira, dentre outras. Todas essas regras devem ser estipuladas por voc durante a criao do Banco de Dados.

Banco de Dados Atravs do IBOConsole criaremos nosso Banco de Dados. Armazenar as informaes que sero manipuladas pelo aplicativo que voc desenvolveu. Armazenar tambm as restries e regras para a manipulao do Banco de Dados.

3

Criando o Modelo de Entidade Relacionamento - MERNosso objetivo aqui construir um modelo que represente as relaes entre as entidades do nosso sistema. Obrigatoriamente esta deve ser a primeira etapa no desenvolvimento de um sistema de Banco de Dados.

PRODUTOS CDPRODUTO DCPRODUTO VLPRODUTO* QTESTOQUE QTMINIMA CDFORNECEDOR PK 1 N

ITENS NRVENDA NRITEM CDPRODUTO QTVENDA VLPRODUTO* PK FK PK FK

FK

N

N

1 FORNECEDORES CDFORNECEDOR DCFORNECEDOR ENDERECO BAIRRO CIDADE TELEFONE CEP PK N

1

VENDAS NRVENDA DTVENDA CDCLIENTE CDVENDEDOR PK FK FK

N

1

1

CLIENTES CDCLIENTES DCCLIENTE ENDERECO BAIRRO CIDADE TELEFONE CEP PK VENDEDORES CDVENDEDOR DCVENDEDOR PK

PK = Primary Key = Chave Primria FK = Foreign Key = Chave Estrangeira*pode parecer redundncia mas no , uma vez que poder haver alterao do valor do produto lanado no momento da venda em relao ao perodo atual.

4

Aps a construo do MER podemos definir as tabelas:

Tabela: Fornecedores Campo Descrio CDFORNECEDOR Cdigo do Fornecedor DCFORNECEDOR Descrio do Fornecedor ENDERECO Endereo do Fornecedor BAIRRO Bairro CIDADE Cidade TELEFONE Telefone CEP Cep Tabela: Clientes Campo Descrio CDCLIENTE Cdigo do Cliente DCCLIENTE Descrio do Cliente ENDERECO Endereo do Cliente BAIRRO Bairro CIDADE Cidade TELEFONE Telefone CEP Cep Tabela: Vendedores Campo Descrio CDVENDEDOR Cdigo do Vendedor DCVENDEDOR Descrio do Vendedor Tabela: Produtos Campo Descrio CDPRODUTO Cdigo do Produto DCPRODUTO Descrio do Produto VLPRODUTO Valor (preo) do Produto QTESTOQUE Quantidade em estoque do produto QTMINIMA Quantidade mnima desejvel do produto em estoque CDFORNECEDOR Cdigo do Fornecedor Tabela: Vendas Campo NRVENDA DTVENDA CDCLIENTE CDVENDEDOR Tabela: Itens Campo NRVENDA NRITEM CDPRODUTO QTVENDA VLPRODUTO

Tipo Integer Varchar(30) Varchar(40) Varchar(20) Varchar(20) Varchar(10) Varchar(8)

Obs Not null

PK X

FK

Tipo Integer Varchar(30) Varchar(40) Varchar(20) Varchar(20) Varchar(10) Varchar(8)

Obs Not null

PK X

FK

Tipo Integer Varchar(30)

Obs Not null

PK X

FK

Tipo Integer Varchar(30) Decimal(16,2) Decimal(16,2) Decimal(16,2) Integer

Obs Not null

PK X

FK

X

Descrio Nmero da venda Data da venda Cdigo do cliente Cdigo do Vendedor

Tipo Integer Date Integer Integer

Obs not null not null not null not null

PK X

FK

X X

Descrio Nmero da venda Nmero do item da venda Cdigo do Produto Quantidade Vendida Valor (preo) do Produto

Tipo Integer Integer Integer Decimal(16,2) Decimal(16,2)

Obs Not null Not null

PK X X

FK X X

5

Alguns EsclarecimentosCom o MER aprovado pelo usurio podemos criar fisicamente o Banco de Dados. Utilizaremos o IBOConsole como ferramenta para criar e alterar nosso banco de dados. Atravs do IBOConsole criaremos as tabelas, determinaremos as chaves primrias e estrangeiras, os domnios dos campos e definiremos os relacionamentos entre as tabelas. Antes de comear a parte prtica alguns esclarecimentos: o Firebird j est instalado em seu computador e ser automaticamente executado quando voc ligar o computador, ficando residente na memria do computador.Crie a seguinte estrutura subordinada a pasta ALUNOS no HD do seu computador

(local):

Delphi Vendas

Grave aqui todos os arquivos referentes ao projeto feito em Delphi

Scripts Grave aqui todos os Scripts

Dados

Grave aqui o Banco de Dados (*.GDB)

Uma das formas de avaliao utilizada no curso ser o desenvolvimento de algumas partes do nosso aplicativo, SISTEMA DE CONTROLE DE VENDAS, pelo prprio aluno em um prazo pr-estabelecido. Para evitarmos problemas futuros: No esquea de fazer BACKUP. Reserve os 5 minutos finais de cada aula para realiz-lo.

6

Criao do Banco de DadosAo executar o IBOConsole deve-se inicialmente dar um clique duplo em Local Server e informar o nome do usurio (SYSDBA) e a senha (masterkey) (repare nas letras maisculas e minsculas). Para criar um banco de dados selecione as opes Database|Create Database. Aparecer a seguinte tela: Digite o caminho completo e o nome do banco de dados. Por exemplo: C:\....\DELPHI\DADOS\VENDAS.GDB.

Em Alias digite um apelido para o seu banco de dados. Por exemplo: VENDAS

Aps a confirmao, o Firebird ter criado o arquivo com extenso GDB no HD.

7

Criao das Tabelas do Banco de Dados As tabelas devem ser criadas atravs de instrues SQL. Veja as instrues SQL para criar as tabelas do nosso banco dados: /* TABELA DE FORNECEDORES */ create table fornecedores (cdfornecedor integer not null, dcfornecedor varchar(30), endereco varchar(40), bairro varchar(20), cidade varchar(20), telefone varchar(10), cep varchar(8), constraint pkfornecedores primary key(cdfornecedor));

/* TABELA DE CLIENTES */ create table clientes (cdcliente integer not null, dccliente varchar(30), endereco varchar(40), bairro varchar(20), cidade varchar(20), telefone varchar(10), cep varchar(8), constraint pkclientes primary key(cdcliente));

/* TABELA DE VENDEDORES */ create table vendedores (cdvendedor integer not null, dcvendedor varchar(30), constraint pkvendedores primary key(cdvendedor));

/* TABELA DE PRODUTOS */ create table produtos (cdproduto integer not null, dcproduto varchar(30), vlproduto decimal(16,2), qtestoque decimal(16,2), qtminima decimal(16,2), cdfornecedor integer not null, constraint pkprodutos primary key(cdproduto), constraint fkprodutosfornecedores foreign key(cdfornecedor) references fornecedores(cdfornecedor)); Repare que relacionamos as tabelas PRODUTOS e FORNECEDORES atravs da chave estrangeira fkprodutosfornecedores, isto significa que na tabela PRODUTOS o banco de dados no ir deixar gravar um cdigo de fornecedor que no esteja cadastrado na tabela FORNECEDORES.

8

/* TABELA DE VENDAS */ create table vendas (nrvenda integer not null, dtvenda date not null, cdcliente integer not null, cdvendedor integer not null, constraint pkvendas primary key(nrvenda), constraint fkvendasclientes foreign key(cdcliente) references clientes(cdcliente), constraint fkvendasvendedores foreign key(cdvendedor) references vendedores(cdvendedor)); /* TABELA DE ITENS */ create table itens (nrvenda integer not null, nritem integer not null, cdproduto integer not null, qtvenda decimal(16,2) not null, vlproduto decimal(16,2) not null, constraint pkitens primary key(nrvenda,nritem), constraint fkitensvendas foreign key(nrvenda) references vendas(nrvenda), constraint fkitensprodutos foreign key(cdproduto) references produtos(cdproduto)); Para que as tabelas sejam efetivamente criadas, as instrues acima devem ser submetidas ao Firebird. Clique no boto SQL do IBOConsole que aparecer a seguinte tela:

Digite aqui as instrues SQL Clique aqui para executar as instrues SQL. Caso aparea alguma mensagem, verifique se no contem erros Escolha a opo Query|Save Script para gravar as Criando o Aplicativo instrues. Grave na Pasta Scripts. D nomes adequados, exemplo: fornecedores.sql

Agora comearemos a desenvolver um programa capaz de manipular informaes armazenadas em um Banco de Dados. Trata-se na verdade de um sistema que controlar as Escolha a opo Load|Save vendas de uma determin