Cristina, para persistencia dos dados procure por DEPO no google.
http://www.liws.com.br/depo/arquivos/ Eu ainda nao uso, mas um colega usa e disse ter bons resultados. -- Atenciosamente, Vinicius S. L. Ribeiro [EMAIL PROTECTED] GNU/Linux User #293209. Get counted: http://counter.li.org/ Cristina wrote: > Oi Eduardo, > > A minha maior dúvida é seguinte: fica meio estranho o controle setar > os valores dos atributos na entidade e depois salvar no banco de dados. > Parece que não faz sentido jogar os valores na entidade, já que estou > salvando no banco. Em java quando se trabalha com serialização de > objetos, isto faz sentido, seto os atributos da entidade, coloco em um > vetor de objetos e serializo o vetor. > > Se você tiver outros exemplos de inserção, atualização e consulta > utilizando o modelo MVC, fico muito grata. > > Tutoriais e apostilas sobre o assunto também são bem vindas. > > > > edu052000 escreveu: > > > Bom Dia !!! > > > > Cristina, > > > > A implementação do MVC em Delphi pode ser feita utilizando-se o mesmo > > esquema do JAVA: > > > > Classe Limite - Interface. > > > > Classe Controle - Onde estará toda a regra de negócio, implementada > > por exemplo através de um servidor de aplicação utilizando SOAP. > > > > Classes Entidades - Classes com seus atributos e METÓDOS DE ACESSO. > > > > Outra coisa o DataModule, nada mais é do que um meio para organizar > > seu código, onde todas as suas tabelas, consultas e etc estarão. Veja > > o DataModule como a camada de acesso aos dados. > > > > O que muda é a abordagem dada pelo exemplo aqui apresentado. > > > > Espero ter ajudado qualquer coisa me envia um e-mail que posso te > > fornecer exemplos. > > > > Att. > > > > > > > > > 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] > > > > *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>. > > _______________________________________________________ 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] 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