Bom dia João

Muito obrigado pela ajuda.

As suas respostas me quebraram não um galho, mas uma árvore inteira.. rs
Lógico que vão surgindo novidades a cada dia e com elas as dificuldades e 
dúvidas, mas já deu pra entender bem o funcionamento do IO.
O que me deixa um pouco intrigado é que tô achando ele um tanto "engessado". 
Quer dizer, ele tem a maneira própria de fazer as coisas que eu 
obrigatoriamente tenho que seguir, o que as vezes pode não ser tão funcional 
pro meu sistema. Sei lá.. ou ainda tenho muito pra descobrir nele. Mas tenho o 
receio de ficar muito preso na maneira de trabalhar com ele. Mas vou continuar 
pesquisando mais um pouco, pensar também em algumas outras soluções até 
encontrar a que mais vai se encaixar na minha realidade. Mas sem dúvidas o IO 
tem muita coisa boa.

Mas muito obrigado pelas respostas e o que precisar que estiver ao meu alcance, 
estou aí pra ajudar, ok?

Abraços.

Claudiney Cogo
[EMAIL PROTECTED]
N2 Sistemas e Soluções em Informática Ltda.
Av. São Paulo, 172 - 15º Andar - Sala 1505
CEP 87013-908 - Maringá - Pr
Telefone: 44- 3222-6053

  ----- Original Message ----- 
  From: Joao Morais 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Saturday, February 03, 2007 10:45 AM
  Subject: Re: [delphi-br] ModelMaker / Instant Objects


  Claudiney Cogo - Listas wrote:

  > Realmente estou tendo algumas dúvidas com o Instant Objects
  > principalmente no tocando as diferenças entre o Selector e o
  > Exposer. O Selector uso sem problemas, é bem simples. O
  > Exposer ainda me dá um pouco de trabalho, pois ele depende
  > de algumas configurações. Ainda não entendi bem o funcionamento
  > dele. Mas pelo que entendi ele seria mais ou menos a Table e o
  > Selector seria como a Query, correto?

  Não há como fazer uma comparação direta entre decendentes tradicionais 
  de tdataset e os expositores do IO. O que você pode fazer é distuinguir 
  entre um e outro: Selector serve para apresentar objetos que você traz 
  diretamente da base de dados, Exposer serve para apresentar objetos que 
  já estão na memória.

  > Agora o que me dá mais
  > trabalho, ainda não peguei bem o lance, é a questão da
  > propriedade Subject e ContainerName. Subject entendi como sendo
  > uma instância da classe que quero trabalhar, correto? A
  > ContainerName é o ponto onde estou agora tentando entender.

  Subject é o objeto que você está apresentando e editando. ContainerName 
  é usado quando você tem um Exposer do tipo Container -- ou seja, que 
  aponta para um atributo Parts ou References.

  Pense em uma nota fiscal. Você tem uma lista de notas fiscais e tais 
  notas são trazidas do banco através do Selector, dentro de um critério 
  de pesquisa. Uma vez na memória -- apresentado para o usuário através de 
  um grid -- você tem duas formas de montar um form para essa nota:

  1. você pode usar o exposer para apresentar uma nota em um formulário. 
  Aqui o Mode é amObject e o ContainerName fica vazio. Para você ligar o 
  objeto Nota ao Exposer, basta fazer:
  NotaExposer.Subject := NotaSelector.CurrentObject;

  2. você pode ligar o datasource do seu formulário ao Selector, mas eu 
  particularmente não gosto e contra-indico essa opção por acoplar o 
  formulário ao grid em que você visualiza a lista de notas.

  Dentro do formulário de nota fiscal você tem os itens da nota. Para 
  apresentar os itens você usa outro exposer, mas neste caso a propriedade 
  Mode é amContent e a propriedade ContainerName é preenchida com o mesmo 
  nome do atributo Itens, que provavelmente é um Parts, e que está 
  definido dentro do objeto Nota Fiscal.

  > Vale lembrar que sou novo em OO, o que dificulta um pouco, pois
  > alguns conceitos ainda não estão totalmente claros. Cadastros
  > usando só o Selector, mesmo usando herança (Part) e referência
  > a outras classes (Reference) eu fiz sem problemas. Agora com o
  > Exposer ainda não consegui decifrar tudo.
  > 
  > Principais dúvidas... 
  > 
  > onde é melhor usar um e onde é melhor usar outro?

  Selector quando você precisa consultar a base utilizando algum critério 
  de busca e ordenação. Exposer em todos os outros casos, tanto para 
  apresentar objetos soltos (Mode=amObject) quanto apresentar Parts e 
  References de objetos (Mode=amContent).

  > master/detail somento com dois exposer, correto?

  Master pode ser um selector ou um exposer. Detail sempre um exposer.

  > sempre que usa um tipo Part ele cria um campo blob pra guardar isso no 
banco? e como acessar essas informações por fora do sistema? não fica 
prejudicado? ou existe outra forma de fazer isso?

  Sim, ao criar campos Part, Parts ou References, informe que você quer 
  External Storage. Só funciona para conectores SQL -- ou seja, nada de 
  BDE, DBIsam, etc.

  > Bom... vamos devagar pra não assustar né... :)
  > 
  > Valeu pela resposta.. 

  Sem susto, e disponha.

  > Dei uma boa estudada no Model Maker.. não sei tudo, mas dá pra fazer 
bastante coisa. Caso precise de alguma coisa a respeito, me diga, ok???

  Ok, obrigado. Na verdade não estou mais usando InstantObjects como 
  objeto de negócio, menos ainda os Expositores para apresentação, e daqui 
  um pouco também vou deixar de usar seu framework de persistência. É 
  trauma de descendentes de tdataset.

  --
  João Morais


   

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

Responder a