Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.
Digerindo o codigo acima,
Com o ValueObject recebemos a classe a ser lida, por ser uma classe de persistencia geral a mesma captura a classe que a invocou, lê as properties da classe, as properties que não forem vazias ou nulas são colocadas no where na montagem do SQL, após isso passamos o parâmetro que define como vai ser o retorno, e para terminar passamos a ordenação dos dados. Como a aplicação é em camadas, observe abaixo o modelo utilizado:
Camada de Apresentação (Tela)
Camada de Fachada
Camada de Bussines
Camada de Persistência
BANCO DE DADOS
Neste modelo todas as classes geram suas tabelas no banco de dados, se as tabelas não existirem claro, as properties são os campos da tabela, na tela instancio as classes Clientes e FachadaClientes, já chamando o método criado na fachada, observe:
############################ (Tela)
procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
Clientes : TClientes;
FaClientes : TFachadaClientes;
begin
Clientes := Tclientes.Create; // Esta classe só contem as properties
FaClientes := TFachadaclientes.Create;
DataGridDset.DataSource := FaClientes.SelecionarClientes(Clientes,0,'Nome').DSet;
DataGridDset.DataBind;
DataGridReader.DataSource := FaClientes.SelecionarClientes(Clientes,1,'Nome').DReader;
DataGridReader.DataBind;
end;
############################
Indo uma camada abaixo, observe a implementação do método na camada FachadaClientes:
############################ (Camada Fachada)
class function TFachadaClientes.SelecionarClientes(Clientes: TClientes; SetouReader: integer; Order: String): TDSetouDReader;
Var
vBusClientes : TBusClientes;
begin
vBusClientes := TBusClientes.create;
result := vBusClientes.SelecionarClientes(Clientes,SetouReader,order);
end;
############################
Indo uma camada a baixo observe:
############################ (Camada Bussines)
function TBusClientes.SelecionarClientes(Clientes: TClientes; SetouReader: integer; Order: String): TDSetouDReader;
Var
vClientes : TpClientes; // Classe de pesrist especifica, herda o método de TPersistenciaGeral
begin
vClientes := TpClientes.Create;
result := vClientes.Select(Clientes,SetouReader,Order);
end;
############################
No codigo da pagina inicial(Tela) note que coloquei dois datagrids, um sendo alimentado por um dataset e outro sendo alimentado por um DataReader. A grande sacada nesta solução é realmente o uso de um tipo para possibilitar mais que um retorno na função, espero ter ajudado, qualquer dúvida, sugestão, ou melhora na solução entrem em contato : leoquartieri@hotmail.com
Agradecimentos super especiais a Eduardo Flaeschen (QD Tecnologia),
mais que um professor, um Mestre na arte de programar.
Leonardo Quartieri
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009