Oi Romário,
   
    Valeu pelas dicas.
    Aprendi MVC com java e o conceito é um pouco diferente do que você 
exemplificou em Delphi.

     Por exemplo em java temos:
       Classe Limite que é a interface
       Classe Controle que é a classe responsável pela regra de negócio, 
e por salvar os dados nos atributos da Classe Entidade
       Classe Entidade é a classe que contém os atributos e os métodos 
de acesso.
   
    Pelo seu exemplo o limite chama os métodos da entidade (Classe, como 
você definiu) e a entidade chama os métodos da classe controle 
(DataModule) para acessar o banco de dados.



Romario (Listas) escreveu:

> Vou dar um exemplo básico utilizando a sua dúvida com o insert.
>
> =================================================================
>
> Na Interface:
>
> Type
>
>    TfmCliente = Class(TObject)
>
>    {Lista de Componentes do Formulário}
>    ...
>
>    Procedure FormCreate(Sender: TObject);
>    Procedure FormDestroy(Sender: TObject);
>    Procedure btnSaveClick(Sender: TObject);
>
>    Private
>      { Private declarations }
>    Public
>      { Public declarations }
>    End;
>
> Var
>    fmCliente: TfmCliente;
>
> Implementation
>
> {$R *.dfm}
>
> Var
>    Cliente: TCliente;
>
> Procedure TfmCliente.FormCreate(Sender: TObject);
> Begin
>    Inherited;
>    Cliente := TCliente.Create;
> End;
>
> Procedure TfmCliente.FormDestroy(Sender: TObject);
> Begin
>    FreeAndNil(Cliente);
>    Inherited;
> End;
>
> Procedure TfmCliente.btnSaveClick(Sender: TObject);
> Begin
>    If edtNome.Text <> '' Then
>    Begin
>      Funcionario.Nome := edtNome.Text;
>      ...
>      If Funcionario.Salvar Then
>      Begin
>        edtNome.Clear;
>        ...
>      End
>      Else
>      Begin
>        ShowMessagem('Houve erro na gravação');
>        ...
>        edtNome.SetFocus;
>      End;
>    End
>    Else
>    Begin
>      ShowMessagem('É obrigatório informar o nome do cliente.');
>      ...
>      edtNome.SetFocus;
>    End;
> End;
>
> =================================================================
>
> Na Classe:
>
> Type
>
>    TCliente = Class(TObject)
>
>    Private
>
>      FCodigo    : Integer;
>      FNome      : String;
>      ...
>
>    Public
>
>      Property Codigo : Integer Read FCodigo;
>      Property Nome   : String  Read FNome Write FNome;
>      ...
>
>      Function Salvar: Boolean;
>      ...
>
>    End;
>
> Implementation
>
> Function TCliente.Salvar: Boolean;
> Begin
>
>    Result := dmCliente.Salvar(Self);
>
> End;
>
> End.
>
> =================================================================
>
> No DataModule:
>
> Type
>
>    TDmCliente = Class(TDataModule)
>
>    Private
>      { Private declarations }
>    Public
>      { Public declarations }
>      Function Salvar(oCliente: TCliente): Boolean;
>    End;
>
> Var
>    dmCliente: TDmCliente;
>
> Implementation
>
> {$R *.dfm}
>
> Function TDmCliente.Salvar(oCliente: TCliente): Boolean;
> Begin
>    With cdsCliente do
>    Begin
>      Try
>        Close;
>        If oCliente.Codigo = 0 Then
>        Begin
>          { Para abrir o ClientDataSet já vazio }
>          CommandText := 'Select * From Cliente Where CodCliente = 0';
>          Open;
>          Insert;
>          FieldByName('CodCliente').AsInteger := {Seu Generator};
>        End
>        Else
>        Begin
>          If Locate('CodCliente', oCliente.Codigo, []) Then
>            Edit;
>        End;
>        FieldByName('Nome').AsString := oCliente.Nome;
>        Post;
>        Result := ApplyUpdates(0);
>      Except
>        on E: Exception do
>        ShowMessage(E.Message);
>      End;
>    End;
> End;
>
> =================================================================
>
> Obs.: Não testei o código para saber se tem erros.
>
> Espero que dê para entender a utilização do MVC no Delphi.
>
> Sds,
>
> Romario
>
>
>
>
>
> Cristina escreveu:
> >     Então deixa ver se eu entendi.
> >
> >     Para dar um insert, por exemplo em uma entidade cliente, eu terei
> > que setar os valores dos atributos na entidade e depois na tabela 
> Clientes?
> >
> >     Para fazer uma consulta, insiro na entidade clientes, todos os
> > clientes cadastrados na tabela Cliente e trabalho com os dados em
> > memória? E se eu tiver uma tabela de clientes muito grande, a
> > performance do meu software não estará diminuída, por usar muito espaço
> > em memória?
>
>      
>
>      
>            
> _______________________________________________________
> Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula 
> cupons e concorre a mais de 500 prêmios! Participe! 
> http://yahoo.fbiz.com.br/
>
>
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
> Para ver as mensagens antigas, acesse:
> http://br.groups.yahoo.com/group/delphi-br/messages
>
> Para falar com o moderador, envie um e-mail para:
> [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>
>
>
> *Yahoo! Grupos, um serviço oferecido por:*
>
>
> ------------------------------------------------------------------------
> *Links do Yahoo! Grupos*
>
>     * Para visitar o site do seu grupo na web, acesse:
>       http://br.groups.yahoo.com/group/delphi-br/
>        
>     * Para sair deste grupo, envie um e-mail para:
>       [EMAIL PROTECTED]
>       <mailto:[EMAIL PROTECTED]>
>        
>     * O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>       Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>

-- 

Atenciosamente
----------------------------------------
Cristina Orthmann da Silva
HACON Automação e Tecnologia Ltda
Rua Lauro Linhares 589 - Bairro Trindade
Florianópolis - SC - Brasil
CEP 88036-001
Fone/Fax: 55 48 333-0699
Site: http://www.hacon.com.br/
Email: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
----------------------------------------



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 




Responder a