Clique aqui para ler esse artigo em PDF.
IB/FB
Metadados no IB/FB
Neste artigo veremos como construir, utilizando o Delphi 7, uma ferramenta para criação de diagramas de ER (Entidade e Relacionamento) através da engenharia reversa das tabelas e views de bancos de dados InterBase e/ou Firebird .
O principal objetivo é demonstrar diversas técnicas que podem ser utilizadas nas mais variadas situações vividas pelos desenvolvedores no dia a dia. O ERPlus, nome dado à ferramenta, terá como principais funcionalidades:
·Permitir a seleção do banco de dados IB/FB pelo usuário;
·Gerar o digrama ER contendo todas as tabelas e views selecionadas pelo usuário;
·Listar para cada tabela ou view todos os seus campos com os respectivos tipos;
·Identificar as colunas definidas como chave primária e estrangeira;
·Mostrar os relacionamentos entre as tabelas (Foreign Key);
·Salvar os digramas em um formato XML;
·Abrir os diagramas salvos a partir do arquivo XML gerado;
·Exclusão de uma tabela ou view do diagrama;
·Arrastar as tabelas ou views dentro da área do diagrama;
·Organização automática das tabelas e views contidas no diagrama.
Nota: Apesar de o aplicativo ter sido desenvolvido no Delphi 7, você pode compilá-lo sem problemas em qualquer outra versão do Delphi que possua suporte ao dbExpress, visto também que o mesmo não utiliza nenhum componente de terceiros.
Criando a aplicação
Crie uma nova aplicação no Delphi, altere o nome do formulário para “FrmPrincipal” e salve a unit como “untFrmPrincipal.pas”. Para o arquivo de projeto salve-o como “ERPlus.dpr”. Adicione alguns componentes visuais e não-visuais ao FrmPrincipal e configure-os como mostra a Figura 1.
Figura 1. Formulário principal da aplicação em tempo de design
Para o mmPrincipal (MainMenu) adicione os seguintes itens de menu:
·Diagrama
oNovo
oAbrir
oSalvar
oSalvar como
oFechar
·Banco de Dados
oConfigurar
·Tabelas
oSelecionar Tabelas
oApagar Tabela Selecionada
·Outros
oOrganizar Layout
oVisualizar Relacionamentos
oCaixa Sobre
·Sair
Você pode utilizar o imglPrincipal (ImageList) para adicionar alguns ícones para os itens do menu principal e para os botões da ToolBar. Todas as ações dos menus e botões ficarão centralizados em Actions no aclPrincipal (ActionList).
Nota: Por questões de espaço explicarei neste artigo apenas os principais métodos da aplicação. Para acompanhar o passo a passo, você poderá baixar o código-fonte completo do ERPlus a partir do link para download da revista.
Crie uma nova unit e salve-a como “untTabela.pas”. Para que possamos carregar o diagrama ER com as tabelas e views do banco de dados IB/FB, que será selecionado pelo usuário, vamos criar uma classe chamada “TTabela” na unit recém criada. Digite o código da Listagem 1 na unit.
Listagem 1. Criando a classe para acessar as tabelas e views do banco
unit untTabela;
interface
uses
Classes, SysUtils, Graphics, Controls, ExtCtrls,
ComCtrls;
type
TTabela = class(TPanel)
private
FTabela: string;
FPnlTitulo: TPanel;
FLVCampos: TListView;
FChavesEstrangeiras : TStringList;
procedure EndDrag(Sender, Target: TObject;
X, Y: Integer);
procedure setTabela(const Value: string);
public
property Tabela: string read FTabela
write setTabela;
property PnlTitulo: TPanel read FPnlTitulo
write FPnlTitulo;
property