Tá mas teu exemplo de recursividade não tem relação com a questão, melhor se
tu criase um descendente de TTable, já com o evento, não precisaria nem de
colocar em todas as Tables. Eu prefiro usar um trigger para fazer isso.

Tu disse que não usa uma TTable em cada form, mas se tu tá cadastrando um
cliente, por exemplo, e não tem a cidade dele no cadastro de cidades, no
momento de cadastrar a nova cidade, tu usa a mesma TTable ? Fecha, abre,
refresh e tals ?


----- Original Message ----- 
From: "Luiz Escobar" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Friday, December 01, 2006 1:30 PM
Subject: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!


Acho que vc esta redondamente equivocado nesta parte Campus....
pra isso que existem os DATAMODULES / ( PROCEDURES / FUNCTIONS /
nEvent´s  )-RECURSIVOS....  eu só faço a parte de pesquisa uma unica vez...
se ta loco fica colocando um TTABLE em cada FORM.... hehehehhe........

Um exemplo RECURSIVO USANDO BeforePOST( bla bla ), em todas as minhas
tabelas (uso MySQL) tem o campo 'lastuser' que é o ultimo usuário que
cadastrou/modificou o registro.
Em todas as tabelas eu uso esse unico evento... crio ele uma unica vez e nos
BEFOREPOST eu seleciono o EVENTO que já esta criado....  (a data hora é um
campo TIMESTAMP no MySQL, assim nem me preocupo com ela)

procedure TMD_BeforePostALL( dataset : TDataSet );  // ALL porque é usado
para todos....
Begin
    DataSet.FieldByName('lastuser').AsString := (f_principal.l_user); //
pega  o usuário do form.principal...
End;


Luiz Escobar
Analista/Desenvolvedor:
WEB - HTML/JavaScript/PHP/MySQL
WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase
DOS - Clipper/Assembler xBase
SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k
LINUX - LAZARUS/Kylix/MySQL;
http://www.megasistema.com.br




  ----- Original Message ----- 
  From: Campus
  To: delphi-br@yahoogrupos.com.br
  Sent: Thursday, November 30, 2006 3:28 PM
  Subject: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!


  Luiz eu tb estou olhando mais de perto isso.

  O bom é que tu pode criar uma classe TCliente, e chamando o retrieve, por
  exemplo, carregar os dados do banco.

  O ganho é que tu faz isso na classe, e só instancia o objeto.

  Com TDataSet, se em cada form tu for colocar um TTable ou um TQuery para
  buscar esses dados, tu vai ter que localizar o cliente corespondente, ou
com
  Locate, ou com um GotoKey. Em resumo, e sempre tem que escrever muito
  código.

  Já no caso, usando um objeto cliente, tu escreve esse código uma vez só e
  pronto.

  ----- Original Message ----- 
  From: "Luiz Escobar" <[EMAIL PROTECTED]>
  To: <delphi-br@yahoogrupos.com.br>
  Sent: Thursday, November 30, 2006 2:01 PM
  Subject: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a questão!

  >>> Andreano, não é achar que não deve ter, é ter certeza que não precisa
  ter.
  Opa, isso precisa ter muita base pra falar.... né futuro matuzalem....

  >>>É sempre questão de preferência. Falo por mim, estou apenas expondo
  >>>vantagens de um modelo orientado a objetos perante o RAD (com exceção
de
  >>>usar TDataset como objeto de negócio - isso é roda quadrada).

  HUmmm.... uma questao de preferencias..... agora melhorou....

  >>>TDataset é orientado a tabela, OPF é orientado a objetos do domínio do
  >>>problema.

  ==TDataset==
  TabCliente.Open; // ou .Query := 'xx';
  TabCliente.Locate(); // ou TabCliente.Open;
  TabCliente.Edit
  TabClienteNOME := 'Outro';
  TabCliente.Post;
  e se tiver Cached updates... transação...
  ai vc coloca um APPLYUPDATE(-1) e ta tudo certo....

  ==OPF==
  Cliente := TCliente.Retrieve(ID); <<-- monta query, pesquisa, etc.
  Cliente.Nome := 'Outro Nome';
  Cliente.Save; <<-- cache, controle transacional, tudo aqui dentro.

  >>E olha que eu escolhi um modelo de dados sem herança, pra ficar mumu pra
  TDataset.

  Ta tirei o EDIT, quer dizer só mando o valor, sem dar um EDIT, mas tenho
um
  SAVE = POST, os cache/transaction no OPF não existem ? onde eu faço varias
  alterações e mando salvar tudo de uma vez para que se der um problema eu
  possa fazer um ROLLBACK ???
  Este exemplo ta meio desproporcional...
  Pra quem acha que EDIT´s são melhores que DBEDIT´s, isso ai Fudeu com tudo
  mesmo porque os controles ficaram mais ainda longe das mãos dos
  programadores.... não que eu não ache isso maravilhoso, muito pelo
  contrario, quanto menos codigo melhor...

  BOM mas o que o OPF do RETRIEVE usou para se ligar ao BANCO ? não foi um
  DBWARE ? tipo um TTABLE ? TQUERY ? TDATABASE ? e para visualizar as
coisas,
  vou ter que fazer um label1.caption := cliente.nome ?
  Explique mais, ou mostre onde posso conseguir mais coisa.... to começando
a
  gostar do bixim....

  >==DBAware==
  >
  >DBAware é orientado a TDataset (win32) e ainda assim fica pendurado em
  >um componente (DB*) e a um datasource. Se você quer um componente
  >'Combo' mais envenenado, ele tem que entender DBAware. Se o seu Dataset
  >estiver em um DataModule e por desencargo do destino a ligação quebrar
  >(nisso o Delphi melhorou um bocado), você tem que reabrir o form e
  >refazer a bendita.

  é isso de quebrar realmente acontecia muito com D2.... mas no D6 nunca
  aconteceu comigo....

  >==MVP==
  >
  >MVP é totalmente desacoplado, é o framework que entende o componente, e
  >não o contrário. O formulário que usa o padrão MVP *não tem código*,
  >você pode mandar os .pas e os .dfm para uma empresa de design, entregar
  >uma licença de Delphi pra eles, eles usam qualquer componente que eles
  >quiserem, você tras os novos formulários para o seu projeto e recompila.
  >A única exigência é que os componentes continuem com o mesmo nome,
  >porque MVP pode ser bom, mas não é feiticeiro.

  HUmmm isso realmente parece bom...

  >Teria mais um monte pra falar, mas encerro aqui minha participação nessa
  >thread com esse mini-artigo (a menos que os colegas tenham dúvidas).

  Vixe... varias... mas vamos deixar para quando vc chegar no BETA ai eu vou
  ser um que vai querer testar isso ai... porque em PRÉ-ALFA, num vai
dar....

  Valeu e obrigado....

  Luiz Escobar
  Analista/Desenvolvedor:
  WEB - HTML/JavaScript/PHP/MySQL
  WINDOWS - Delphi/MyDAC/ASSEMBLER/MySQL/xBase
  DOS - Clipper/Assembler xBase
  SERVIDORES - NetWare4.11, LINUX-REDHAT9, WINDOWS-2k
  LINUX - LAZARUS/Kylix/MySQL;
  http://www.megasistema.com.br

  [As partes desta mensagem que não continham texto foram removidas]

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

  Links do Yahoo! Grupos

  -- 
  No virus found in this incoming message.
  Checked by AVG Free Edition.
  Version: 7.5.430 / Virus Database: 268.15.2/559 - Release Date: 30/11/2006
  05:07





[As partes desta mensagem que não continham texto foram removidas]



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

Links do Yahoo! Grupos




-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.430 / Virus Database: 268.15.2/559 - Release Date: 30/11/2006
05:07


Responder a