none
CENARIO 2 TABELAS OU MAIS: SELECT COM JOIN ? RRS feed

  • Pergunta

  •  

    Gostaria que alguem conseguisse explicar-me:

     

    Quero retornar os dados de duas tabelas RELACIOANDAS: CLIENTE e ENDERECO (relacionada pelo codigo do cliente).

     

    O DATASET que tenho que criar (crio atravez do WIZARD) tem de ser co o SELECT COM JOIN entre as duas tabelas?

     

    Ou crio as duas tabelas no WIZARD e relaciono as duas somente?

     

    Juliano.

     

     

     

     

    sexta-feira, 15 de fevereiro de 2008 13:52

Todas as Respostas

  • Olá J_Lux,

     

    Isso depende. Se você precisar tratar em sua aplicação dados de cliente e endereço individualmente, terá que criar duas tabelas (DataTable) para manipular individualmente essas combinações. Você poderá eventualmente juntá-las no DataSet. Se precisar recuperar a informação já combinada (possivelmente para exibir em um DataGrid) é melhor recuperá-las através de um JOIN direto no banco de dados.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 15 de fevereiro de 2008 14:04
  •  

    Obrigado pela atenç]ao Gustavo.

     

    O cenario é uma aplicaç]ao de cadastro de clientes de um banco, onde quero ter uma tela onde realizo o cadastro e adiciono endereços , comercial, residencial etc...

    O que vc propoe?

     

    quero ter uma tabela de ENDEREÇOS onde relaciono com o codigo do cliente da talbela CLIENTES...

     

    Outra pergunta que vc poderia me dar uma luz se refere ao dataset criado com o WOZARD e transaçoes???

    Para realizar transacoes com um DATASET criado com wizard tenho que trabalhar a PARTIAL CLASS deste dataset?

     

     

    Aguardo atento tua dica....

     

     

    Juliano~

    segunda-feira, 18 de fevereiro de 2008 13:12
  • Juliano,

     

    Inicialmente você vai trabalhar com quantas tables?

    segunda-feira, 18 de fevereiro de 2008 13:27
  • Olá J_Lux,

     

    No banco de dados sempre devem existir duas tabelas (Uma de Clientes e outra de endereços). Como você está trabalhando com o DataSet (modelo desconectado) e vai haver atualização de endereços. É recomendável que você crie duas tabelas no seu DataSet refletindo o banco de dados (uma de clientes e outra de endereços). Assim, após fazer suas atualizações, você "reconecta" o DataSet e manda as atualizações para o banco com o DataAdapter.

     

    A idéia de ter uma única tabela no DataSet só seria interessante se você fosse apenas consultar um cliente e seus telefones. Nesse caso, você faria uma Query no banco relacionando os registros de clientes e telefones e recuperaria esse conteúdo para uma única tabela no DataSet. No entanto, se fosse somente leitura você não usaria o DataSet mas sim o DataReader.

     

    Não conheço como o DataSet trabalha com transações. Por ser um modelo desconectado e não compartilhado (um DataSet por sessão) nem acho que contexto transacional seja algo pertinente ao DataSet. O que as transações devem influenciar são as atualizações que o DataSet irá provocar no banco. Nesse caso, o contexto transacional será definido no Command do DataAdapter e não no DataSet. O Wizard deve usar o nível de isolamento padrão que é o Read Commited.

     

    Desconheço a Partial Class do DataSet (faz tempo que não mexo com programação).

     

    [ ]s,

     

    Gustavo

     

    segunda-feira, 18 de fevereiro de 2008 14:59
  •  

    2 tabelas no Dataset Junior....

     

    Gustavo.... obrigado pelas explicações..... foram definitivamente esclarecedoras quanto ao relacionamento.

     

    Junior.... se voce puder me dar uma dica sobre como devo utilizar TRANSAÇÂO com o ADAPTER criado com o WIZARD do DATASET.......

     

    A minha ideia é colocar todo INSERT , UPDATE e DELETEs em transaçoes....... porem os datasets consequentemente os adapters sao criados com o WIZARD........

     

     

    Juliano~

     

    Abraços a todos...

    segunda-feira, 18 de fevereiro de 2008 15:09
  • Juliano,

     

    Você quer criar estas transações que serão processadas pelo dataset?

     

    Mas qual a necessidade de fazer isso dentro da aplicação?

    segunda-feira, 18 de fevereiro de 2008 16:38