Fórum Mostrar Dados de Outra Tabela. #258449
15/11/2004
0
Bom Dia Pessoal.
Trabalho com Interbase 6.0 e Delphi 7.0, fiz uma tabela de clientes com codigo, nome, razão social, codigo do vendedor etc. A pergunta e
a seguinte como faço para pegar o nome do vendedor que está na tabela de vendedores e transferir para um label e mostrar no cadastro de clientes.
Obs. Utilizo IBDatabase, IBTransaction, IBQuery, IBUpdate, e Datasource.
Desde já agradeço pela ajuda.
Trabalho com Interbase 6.0 e Delphi 7.0, fiz uma tabela de clientes com codigo, nome, razão social, codigo do vendedor etc. A pergunta e
a seguinte como faço para pegar o nome do vendedor que está na tabela de vendedores e transferir para um label e mostrar no cadastro de clientes.
Obs. Utilizo IBDatabase, IBTransaction, IBQuery, IBUpdate, e Datasource.
Desde já agradeço pela ajuda.
Alberto_cardoso
Curtir tópico
+ 0
Responder
Posts
15/11/2004
Delphi32
Para isso você vai ter que fazer um JOIN (junção de tabelas). Na IBQuery sua SQL ficaria mais ou menos (basicamente) assim:
Vou explicar um pouco do código SQL acima:
[b:334b688035]T1.CODIGO[/b:334b688035] - Significa que eu estou chamando o campo CODIGO da tabela que eu chamo de T1. No caso T1 é a tabela CLIENTES
[b:334b688035]T2.NOMEVENDEDOR[/b:334b688035] - Significa que eu estou chamando o campo NOMEVENDEDOR da tabela que eu chamo de T2. No caso T2 é a tabela VENDEDORES.
[b:334b688035]CLIENTES T1[/b:334b688035] - Significa que nessa SQL, tudo que estiver relacionado a T1 será na verdade relacionado com a tabela CLIENTES.
[b:334b688035]JOIN VENDEDORES T2[/b:334b688035] - Significa que estamos fazendo uma junção entre a tabela descrita anterior (T1 - CLIENTES) com a descrita depois (T2 - VENDEDORES).
[b:334b688035]ON T1.CODVENDEDOR=T2.CODVENDEDOR[/b:334b688035] - Aqui é descrito as condições para a junção da tabela. Nesse exemplo a junção é feita sempre que o código do vendedor em CLIENTES (T1) for igual ao código do vendedor em VENDEDORES (T2), ou melhor, com essa condição assegura que quando lá em cima você chamou T2.NOMEVENDEDOR ele retorne sempre o nome correspondente ao código igual em ambas as tabelas.
Complicado? Bem, se você não conseguir botar para funcionar poste aqui de novo que nós te ajudamos...
Até!
SELECT T1.CODIGO, T1.NOME, T1.RAZAO_SOCIAL, T1.CODVENDEDOR,T2.NOMEVENDEDOR FROM CLIENTES T1 JOIN VENDEDORES T2 ON T1.CODVENDEDOR=T2.CODVENDEDOR
Vou explicar um pouco do código SQL acima:
[b:334b688035]T1.CODIGO[/b:334b688035] - Significa que eu estou chamando o campo CODIGO da tabela que eu chamo de T1. No caso T1 é a tabela CLIENTES
[b:334b688035]T2.NOMEVENDEDOR[/b:334b688035] - Significa que eu estou chamando o campo NOMEVENDEDOR da tabela que eu chamo de T2. No caso T2 é a tabela VENDEDORES.
[b:334b688035]CLIENTES T1[/b:334b688035] - Significa que nessa SQL, tudo que estiver relacionado a T1 será na verdade relacionado com a tabela CLIENTES.
[b:334b688035]JOIN VENDEDORES T2[/b:334b688035] - Significa que estamos fazendo uma junção entre a tabela descrita anterior (T1 - CLIENTES) com a descrita depois (T2 - VENDEDORES).
[b:334b688035]ON T1.CODVENDEDOR=T2.CODVENDEDOR[/b:334b688035] - Aqui é descrito as condições para a junção da tabela. Nesse exemplo a junção é feita sempre que o código do vendedor em CLIENTES (T1) for igual ao código do vendedor em VENDEDORES (T2), ou melhor, com essa condição assegura que quando lá em cima você chamou T2.NOMEVENDEDOR ele retorne sempre o nome correspondente ao código igual em ambas as tabelas.
Complicado? Bem, se você não conseguir botar para funcionar poste aqui de novo que nós te ajudamos...
Até!
Responder
Gostei + 0
15/11/2004
Alberto_cardoso
Muito Obrigado pela ajuda amigo, vou testar como você explicou, só tenho uma dúvida estava vendo em outro tópicos que quando utilizo join não consigo gravar as alterações na tabela e quando tiver no cliente mais de um campo que queira mostrar, pois como uso cliente/servidor que nós sugere a normalização no banco de dados, só vou levar o código das chaves primárias, banco, transportadora, vendedor, fornecedor, mas será interessante aparecer no meu cadastro de clientes os respctivos nomes dos mesmos. neste caso terei que fazer um join com todo esse pessoal. tentei colocar um dbtext setei a propriedade datasource em dtvendedor e a propriedade datafield em nome do vendedor só que me aparece o primeiro vendedor da lista e não o correspondente a chave primária do cadastro de vendedor, se tivesse funcionado seria uma maravilha pois colocaria um dbtext para banco outro para fornecedores e blz. Mas muito obrigado pela sua atenção e pela explicação. é isso que faz o Clube Delphi ser o Melhor não importa que aparece outro com o mesmo nome só que .com.br, o clube delphi sempre vai ser o número 1, o melhor.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)