Utilizando atributos (Attributes) para criar framework objeto relacional em Delphi 2010 – Parte 1

 

Delphi iconDe todas as novidades trazidas pelo Delphi 2010, sem dúvida o suporte a atributo (Attributes) é uma das que mais gosto. Para aqueles que já conhecem este recursos em outras linguagens como C# e Java, sabem que Attributes traz um mundo de possibilidades e associado com as novas funcionalidades da RTTI faz o casamento perfeito.

Em resumo atributos nos permite definir características para classes e seus respectivos elementos, existem vários exemplos que mostram a utilidade dos atributos. O melhor exemplo onde podemos utilizar atributos é a criação de framework objeto relacional (O/R Mapping), assim sendo começo hoje uma série de post explicando atributos e utilizando OR/Mapping como exemplo, além disso vamos ver dbExpress Framework que será parte da solução.

Atributos obrigatoriamente são definidos através de classes, estas devem herdar de TCustomAttribute a classe base para criação dos mesmos. Abaixo a classe TableAttribute que será utilizada para mapear as classes da aplicação com o banco de dados, a propriedade TableName define o nome da tabela.

TableAttribute = class(TCustomAttribute)
private
  FTableName: string;

public
  { TRttiType can be used as a parameter type; TypeInfo() supplies the argument. }
  property TableName: string read FTableName;
  constructor Create(ATableName: string); overload;
end;

implementation

constructor TableAttribute.Create(ATableName: string);
begin
  FTableName := ATableName;
end;

Definido o atributo para mapeamento das tabelas, basta agora você utilizá-lo nas suas classes, abaixo um exemplo onde a classe TCliente está mapeando a tabela CLIENTE.

[Table('CLIENTE')]
TCliente = class
public
  { public declarations }
  property Nome : String read FNome write FNome;
  property Endereco : String read FEndereco write FEndereco;
end;

Esse foi o primeiro post, no próximo vamos criar atributos para mapear propriedades com os campos das tabelas.

Compartilhe e divirta-se:
  • Print
  • Twitter
  • Facebook
  • Yahoo! Bookmarks
  • Digg
  • Sphinn
  • del.icio.us
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • Add to favorites

Posts relacionados

Tags:

 
 
 
 

5 Comments

 
  1. Everson Clei disse:

    Andreano…
    Excelente novidade que você esta trazendo em primeira mão para nós, onde este novo suporte que o D2010 traz irá facilitar a vida de muita gente…
    Parabéns… e aguardamos os próximos posts sobre o assunto.
    [],s

  2. Ricardo disse:

    Andreano, bacana esse topico.. estou querendo implementar um mini framework para persistencia de dados e acho que isso pode me ajudar… no aguardo da continuação desse post..
    abraço !

  3. Cicero A. Billo disse:

    Andreano, a parte 2 desse post já está no forno?

    []s

  4. Diego disse:

    Estamos aguardando a Parte 2

  5. Andreano Lanusse disse:

    Opa Diego,

    Eu sei :) , assim que sobrar um tempinho vou escrever a parte 2, desculpe a demora.

 

Leave a Comment

 




XHTML: You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
 
 
Get Adobe Flash playerPlugin by wpburn.com wordpress themes