Utilizando atributos (Attributes) para criar framework objeto relacional em Delphi 2010 – Parte 1
De 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.









Developer Network
5 Comments
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
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 !
Andreano, a parte 2 desse post já está no forno?
[]s
Estamos aguardando a Parte 2
Opa Diego,
Eu sei
, assim que sobrar um tempinho vou escrever a parte 2, desculpe a demora.