Criteria

2 views
Skip to first unread message

Marcos George

unread,
Apr 3, 2009, 7:45:29 AM4/3/09
to Infra - Integrated Frameworks
Um outro ponto interessante que poderia ser deve ser discutido e já
poderia ser implementado em breve. O Criteria poderia ser colocado no
SqlCommand. Veja um exemplo de uso:

vSqlCommand := Session.CreateQuery('TPessoa'); // Aki poderia ser
passado o TypeInfo...
vSqlCommand.Criteria.AddLike('Nome', 'Jose');
vSqlCommand.Criteria.AddBetween('DataNasc', vData_Ini, vData_Fin);

vPessoas := vSqlCommand.GetList as IPessoas;

Marcos Barreto

unread,
Apr 3, 2009, 11:48:58 AM4/3/09
to infra...@googlegroups.com
vSqlCommand := Session.CreateQuery('TPessoa'); // Aki poderia ser passado o TypeInfo...
vSqlCommand.Criteria.AddLike('Nome', 'Jose');
vSqlCommand.Criteria.AddBetween('DataNasc', vData_Ini, vData_Fin);
vPessoas := vSqlCommand.GetList as IPessoas;

O Criteria é algo que deve funcionar independente do CreateQuery. acho que este método CreateQuery seria utilizado quando utilizando expressoes OQL.

O Criteria é uma classe que contêm Criterions, e tem métodos para criação de cada um dos criterions. Uma vez obtido o SQLCommand a partir do CreateNamedQuery poderiamos montar a expressao:

with vSqlCommand.Criteria do
begin
  AddLike('Nome', 'Jose');
  AddBetween('DataNasc', vData_Ini, vData_Fin);
end;

Na abordagem que fiz no outro framework, cada AddXXX retorna o proprio criteria podendo fazer algo assim:

Criteria.AddLike('Nome', 'Jose').AddOr.AddBetween('DataNasc', vData_Ini, vData_Fin);

Abraços




 







--
Marcos Barreto
MicroProcess Sistemas Ltda - Sócio-Diretor
Reply all
Reply to author
Forward
0 new messages