(Parte 1 de 4)

Bancos de Dados

Conceitos Importantes

O gerenciamento de bancos de dados é essencial para o desenvolvimento comercial, e para criar um banco de dados eficiente é necessário o conhecimento prévio de modelagem de bancos de dados relacionais. Conceitos como banco de dados, tabelas, campos, registros, índices, chaves, relacionamentos, normalização, dentre outros são pré-requisitos básicos para o desenvolvimento desse conteúdo.

Modelo de Dados

É essencial planejar o banco de dados antes de implementar. Um dos métodos que você pode utilizar é o DER, como no exemplo não normalizado mostrado logo abaixo.

Borland Database Engine

A BDE fornece a capacidade de acesso padronizado a banco de dados para Delphi, C++ Builder e outros ambientes de programação da Borland, oferecendo um grande conjunto de funções para auxiliar no desenvolvimento de aplicações Desktop e Cliente/Servidor.

Os controladores da BDE podem ser usados para acessar bases de dados dBase, Paradox, Access, FoxPro, Interbase, Oracle, Sybase e MS-SQL Server, DB2, Informix, além de um controlador de acesso a arquivos texto. Você também pode utilizar fontes de dados ODBC, podendo acessar qualquer base de dados compatível.

As funções que compõe uma API da BDE são usadas internamente pelos componentes de acesso a dados do Delphi e muito raramente você teria que usá-las diretamente, mas isso é totalmente possível. A referência completa das funções da BDE, com exemplos em Delphi, está no BDE API Help na pasta do Delphi no Menu Iniciar.

Arquitetura de Acesso

O acesso e manipulação de um banco de dados por um programa Delphi é realizado como mostrado abaixo, note que a aplicação não acessa os dados diretamente, mas usa sempre a BDE.

Assim, para uma aplicação de bancos de dados funcionar, é preciso que a BDE esteja instalada na máquina, não bastando apenas o arquivo executável.

Criação do Banco de Dados

Para criar um banco de dados novo, normalmente, é necessário dispor de alguma ferramenta do próprio banco de dados, como o Access, mas se a base de dados for Paradox, ou dBase, você pode usar o Database Desktop, um utilitário que vem com o Delphi e permite a criação desses tipos de bancos de dados.

Database Desktop

Fornece uma interface simples e completa para configuração, definição e manipulação de tabelas de bancos de dados Paradox e dBase. Além disso na Opção Tools/Alias Manager você pode configurar seu banco de dados, como será lembrado logo adiante.

Tabelas Paradox

Para criar tabelas Paradox, siga os passos abaixo. Você deve salvar as tabelas de um mesmo banco de dados na mesma pasta, pois o Paradox trata a pasta onde estão as tabelas como sendo o banco de dados.

  1. Clique em File/New/Table

  2. Escolha o tipo da nova tabela, Paradox 7

  3. Aparece uma janela para que você defina a estrutura de campos, índices e demais opções necessárias na criação da tabela

  4. Em Field Name, você escolhe o nome do campo, com até 25 caracteres

  5. Em Type, o Tipo do campo, com a barra de espaço ou o botão direito do mouse você pode escolher o tipo a partir de uma lista

  6. Size é o tamanho do campo, usado somente em alguns tipos de campos

  7. Key especifica os campos que farão parte da chave primária, que não pode se repetir e deve ser composta pelos primeiros campos da tabela

Table Properties

Em Table Properties você define os vários aspectos de configuração da tabela. Muitas dessas opções podem ser implementadas no Delphi e vários programadores preferem não usá-las no Database Desktop.

Opção

Descrição

Validity Checks

Validações para os campos, como obrigatoriedade, valor mínimo e máximo

Table Lookup

Indica que o valor atribuído a um determinado campo tem que estar gravado em outra tabela

Secondary Indexes

Cria índices secundários

Referential Integrity

Cria integridade referencial, geralmente utilizada em relacionamentos de 1 para N.

Password Security

Permite a criação de senhas, protegendo a tabela de acesso não autorizado

Table Language

Especificar o driver de língua utilizado pela tabela, geralmente é o Pdox ANSI Intl850

Dependent Tables

Mostra todas as tabela dependentes através da integridade referencial

Tipos de Campos

Os principais tipos de campos são mostrados abaixo, mas existem outros além desses. Os tamanhos marcados com asterisco indicam que o campo pode guardar tamanhos maiores que os informados, o que ultrapassar o tamanho será guardado em um arquivo externo com a extensão MB.

Tipo

Descrição

Faixa

Tamanho

A

Alfanumérico

1-255

N

Numérico

± 10 308

$

Monetário

S

Short Integer

± 32767

I

Long Integer

± 2147483648

D

Data

T

Hora

@

Data e Hora de modificação

M

Memo

1-240*

G

Gráfico

1-240*

L

Lógico

True/False

+

Autoincremental

1-2147483648

Configuração

Para configurar o acesso a um banco de dados, você tem várias opções, criar um Alias, usar o componente TDatabase ou os dois juntos.

Aliases

Um Alias é um nome lógico, um atalho para um banco de dados. Todo o trabalho do Delphi com um banco de dados pode ser feito baseado no Alias, de forma que para mudar de banco de dados, só é necessário mudar o Alias. Para criar um Alias você pode usar Database Explorer, o BDE Administrator ou o próprio Database Desktop.

Database Explorer

Pode aparecer com os nomes Database Explorer ou SQL Explorer. Nele você pode manipular os Aliases, navegar pelas estruturas dos bancos de dados, alterar os dados das tabelas e executar comandos SQL.

Para criar um Alias selecione o item Databases, clique em Object/New, escolha o tipo do banco de dados, ou Standard para dBase, Paradox e arquivos texto, depois digite um nome do Alias, esse nome será usado pelo Delphi quando você quiser acessar o banco de dados, finalmente defina as propriedades do banco de dados na seção Definition, cada banco de dados terá suas próprias definições.

BDE Administrator

Com o BDE Administrator você pode alterar a configuração da BDE, por exemplo em Configuration/System/Init você tem a propriedade Local Share que deve ser setada para True, quando você quiser que a base de dados seja compartilhada em uma rede. Além disso, você pode criar Aliases, como no Database Explorer.

TDatabase

Esse componente permite a manipulação de um banco de dados, através de um Alias da BDE ou a criação de um Alias local, somente visível dentro da aplicação, esse componente também permite o gerenciamento de transações, garantindo uma integridade maior no projeto. Por essas e outras razões o uso do componente Database é altamente recomendado como opção para criação de Aliases.

Propriedades

Descrição

AliasName

Nome do Alias do banco de dados, usado quando você criar um Alias da BDE

Connected

Define se a conexão com o banco de dados está ativa

DatabaseName

Nome do Alias local a ser usado pelos outros componentes do Delphi

DataSetCount

Número de DataSets (Tabelas) abertos no banco de dados

DataSets

Lista com os DataSets abertos

DriverName

Driver usado para criar um Alias local, automaticamente cancela a propriedade AliasName

InTransaction

Define se o Database está em transação

KeepConnection

Define se a conexão com o banco de dados será mantida, mesmo sem DataSets abertos

LoginPrompt

Define se será mostrado o quadro de login padrão da BDE

Params

Parâmetros do banco de dados, com itens semelhantes à seção Definition do Database Explorer

TransIsolation

Nível de isolamento da transação, define como uma transação irá enxergar outra

Métodos

Descrição

Close

Encerra a conexão com o banco de dados, todos os DataSets serão fechados

CloseDataSets

Fecha todos os DataSets abertos, mas a conexão não é encerrada

Commit

Grava alterações feitas durante a transação

Open

Abre a conexão com o banco de dados

Rollback

Anula todas as alterações feitas durante a transação

StartTransaction

Inicia uma transação

Eventos

Descrição

OnLogin

Evento usado quando você quiser escrever seu próprio método de conexão com o banco de dados

Para acessar uma base de dados Access, você poderia usar os valores mostrados na descrição textual a seguir.

AliasName = 'Northwind'

DatabaseName = 'Dados'

LoginPrompt = False

KeepConnection = True

Params.Strings = (

'DATABASE NAME=C:\Meus Documentos\NorthWind.mdb'

'USER NAME=paulo'

'OPEN MODE=READ/WRITE'

'LANGDRIVER=intl850'

'PASSWORD=elvis')

Para ajudar a preencher os parâmetros de um Database, clique duas vezes sobre o componente e clique em Defaults, todos os parâmetros defaults serão apresentados.

Para acessar uma base Paradox, use as propriedades abaixo, note que para o Paradox, a única informação realmente significante é o Path, a pasta onde estão as tabelas.

AliasName = 'DBDEMOS'

DatabaseName = 'Dados'

LoginPrompt = False

KeepConnection = True

Params.Strings = (

'PATH=d:\Borland\Delphi 3\Demos\Data'

'ENABLE BCD=FALSE'

'DEFAULT DRIVER=PARADOX')

Após a criação do Alias da BDE ou do Alias local, usando o componente TDatabase, o banco de dados está configurado e pronto para ser usado.

Database Form Wizard

Após a configuração do banco de dados, a maneira mais rápida, de se fazer uma janela de manutenção de dados é através do Form Wizard no menu Database. Ao chegar no Wizard são feitas uma série de perguntas que podem resultar em uma janela simples ou Mestre/Detalhe. O acesso ao banco de dados pode ser feito através de componentes TTable ou através de SQL, com o componente TQuery, usaremos o componente TTable. Todos os campos selecionados aparecem na janela permitindo entrada de dados através de componentes do tipo TDBEdit. Cada DBEditrecebe um Label baseado no nome do campo na tabela selecionada. Na Janela é incluído também um componente para permitir a navegação e a manutenção dos dados, um DBNavigator. O componente utilizado para fazer a ligação entre os componentes visuais e o TTable é um TDataSource. Geralmente os componentes TTable e TDataSource são inseridos em DataModules, que são a base para a criação de classes de dados. Sempre Após usar o Wizard, lembre-se de mudar os nomes dos componentes, para que fiquem mais claros.

Form Passo a Passo

O diagrama abaixo mostra como o Wizard fez a ligação entre os componentes, onde os quadrados são componentes e as elipses, propriedades.

Para concluir, acompanhe abaixo os passos realizados pelo Wizard e tente você mesmo criar seu próprio Form.

  1. Inclua um novo DataModule

  2. Adicione ao DataModule um Table e um DataSource

  3. No Table Coloque em DatabaseName o nome do Alias criado pela propriedade DatabaseName do Database e em TableName, o nome da tabela

  4. No evento OnCreate do DataModule, chame o método Open do componente Table

  5. No DataSource coloque em DataSet o nome do componente TTable

  6. No Form, para definir a interface com o usuário, use os componentes de controle de dados que estão na página DataControls, basicamente DBEdit e DBNavigator

  7. Para poder acessar os dados, coloque a Unit onde está o DataModule no uses da Unit do Form

  8. Em todos os componentes DataControls, escolha na propriedade DataSource, o componente DataSource criado no DataModule

  9. Em alguns controles, como no DBEdit, deve ser especificado também o campo da tabela, na propriedade DataField

Seguindo esses passos, o Form estará pronto para usar. Mais adiante, veremos uma forma mais rápida de se criar um Form de manutenção, mas o mais importante é compreender os passos mostrados acima, com todos os componentes e propriedades envolvidas. Vamos detalhar agora cada um dos componentes envolvidos nesse processo, para compreendermos melhor o que está acontecendo.

TDataModule

(Parte 1 de 4)

Comentários