Seja bem vindo a mais esse artigo, e boa leitura.
Lancei hoje os drivers para gerenciamento de banco de dados para Interbase e PostgreSQL, já estão disponíveis no repositório, dúvidas, perguntas, bugs, sugestões, gentileza podem ser postados no Fórum http://www.ormbr.com.br/forum e os fontes podem ser baixados no site http://www.ormbr.com.br no menu Download.
Quero aqui deixar meus agradecimentos ao Juliomar Marchetti, mais informações sobre ele podes ser encontradas no seu blog http://www.juliomarmarchetti.com.br, ele foi quem teve a ideia e colocou mão na massa para aproximar os interessados no projeto ORMBr ao seu autor, ele criou um Canal e um Grupo no Telegram o link para o Canal https://telegram.me/canalormbr e para o Grupo https://telegram.me/ormbr, convido a todos interessados a participar.
O ORMBr já da suporta a gerenciamento a banco de dados com base no modelo criado, até o momento já temos os drivers para os bancos: MSSQL, MySQL, Firebird, Interbase, SQLite e PostgreSQL, o recurso oferecido até o momento são criação de tabelas com sua estrutura completa e com todos os recursos de coluna como TIPOS, NOT NULL, DEFAULT, juntamente com recursos como criação de PrimaryKey, ForeignKey, Indexe e Check, isso funcional e testado, e não acabou por ai, tem ainda o recurso de ADD COLUMN nova a estrutura, caso a coluna seja adicionado ao modelo e ser rodado o recurso de verificação de metadata, segue abaixo um exemplo de como usar o recurso:
procedure TForm1.Button1Click(Sender: TObject);
var
oManager: TDatabaseAbstract;
oConnection: IDBConnection;
begin
// Instância da class de conexão via FireDAC, segundo parametro
// o Driver de qual Banco usado
oConnection := TFactoryFireDAC.Create(FDConnection1, dnPostgreSQL);
oManager := TDatabaseManager.Create(oConnection);
oManager.BuildDatabase;
for cDDL in oManager.GetCommandList do
Memo1.Lines.Add(cDDL.Command);
oManager.Free;
end;
Nota: Até o momento a criação do banco de dados, tem que ser feito manualmente, estou estudando a implementação desse recurso via ORMBr, após a criação do banco vazio, só configura-lo ao engine de conexão que no ORMBr podem ser: FireDAC, DBExpress ou Zeos até agora, em seguida criar a fabrica de conexão conforme engine de preferência e rodas a atualização conforme modelo criado. Abaixo um exemplo de um modelo bem completo para estudo e teste:
unit ormbr.model.person;
interface
uses
Classes,
DB,
/// orm
ormbr.mapping.attributes,
ormbr.types.mapping,
ormbr.mapping.register;
type
[Entity]
[Table('Person','Tabela de pessoas')]
[PrimaryKey('Id', NoSort, False, 'Chave primária')]
[Indexe('IDX_FirstName','FirstName', NoSort, True, 'Indexe por nome')]
[Check('CHK_Age', 'Age >= 0')]
TPerson = class
private
{ Private declarations }
FId: Integer;
FFirstName: string;
FLastName: string;
FAge: Integer;
FSalary: Double;
public
{ Public declarations }
[Restrictions([NoUpdate, NotNull])]
[Column('Id', ftInteger)]
[Dictionary('Código ID','Mensagem de validação','0','','',taCenter)]
property Id: Integer Index 0 read FId write FId;
[Restrictions([NotNull])]
[Column('FirstName', ftString, 40)]
[Dictionary('Primeiro nome','Mensagem de validação','','','',taLeftJustify)]
property FirstName: String Index 1 read FFirstName write FFirstName;
[Column('LastName', ftString, 30)]
[Dictionary('Último nome','Mensagem de validação','','','',taLeftJustify)]
property LastName: String Index 2 read FLastName write FLastName;
[Restrictions([NotNull])]
[Column('Age', ftInteger)]
[Dictionary('Idade','Mensagem de validação','0','','',taCenter)]
property Age: Integer Index 3 read FAge write FAge;
[Restrictions([NotNull])]
[Column('Salary', ftCurrency, 18, 3)]
[Dictionary('Preço','Mensagem de validação','0','','',taRightJustify)]
property Salary: Double Index 4 read FSalary write FSalary;
end;
implementation
initialization
TRegisterClass.RegisterEntity(TPerson);
end.
0 comentários :
Postar um comentário