Inquiridor
CENARIO 2 TABELAS OU MAIS: SELECT COM JOIN ?

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.
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
-
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~
-
-
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
-
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...
-