Mostrar dados em uma dbgrid
Tenho uma dbgrid que mostra os dadios de uma tabela de produtos, porem ela esta linkada com uma tabela de unidade e quando link no adotable a unidade mostra somente o codigo da unidade e nao a descrição como faço para alterar isso
Daniel
Curtidas 0
Respostas
Eliel Martins
08/06/2011
Olá Daniel !
Ficou um pouco confuso a sua descrição do seu problema, mas pelo que entendi você quer que mostre em uma grid os dados do produto mais a descrição da unidade, se for isso, você precisa utilizar uma Query e fazer o um SELECT da seguinte forma :
Ai você liga essa query em um DataSource e liga no DBGrid, foi isso que entendi do seu tópico, se não for isso, detalha mais para eu tentar te ajudar, blz ?
Espero ter ajudado em alguma coisa, abraço.
Eliel G. Martins
Ficou um pouco confuso a sua descrição do seu problema, mas pelo que entendi você quer que mostre em uma grid os dados do produto mais a descrição da unidade, se for isso, você precisa utilizar uma Query e fazer o um SELECT da seguinte forma :
SELECT P.CODIGO_PRODUTO, P.NOME_PRODUTO, U.NOME_UNIDADE, U.CODIGO_UNIDADE FROM PRODUTO P INNER JOIN UNIDADE U ON (P.CODIGO_UNIDADE = U.CODIGO_UNIDADE)
Ai você liga essa query em um DataSource e liga no DBGrid, foi isso que entendi do seu tópico, se não for isso, detalha mais para eu tentar te ajudar, blz ?
Espero ter ajudado em alguma coisa, abraço.
Eliel G. Martins
GOSTEI 0
Daniel
08/06/2011
Olá Daniel !
Ficou um pouco confuso a sua descrição do seu problema, mas pelo que entendi você quer que mostre em uma grid os dados do produto mais a descrição da unidade, se for isso, você precisa utilizar uma Query e fazer o um SELECT da seguinte forma :
Ai você liga essa query em um DataSource e liga no DBGrid, foi isso que entendi do seu tópico, se não for isso, detalha mais para eu tentar te ajudar, blz ?
Espero ter ajudado em alguma coisa, abraço.
Eliel G. Martins
Quando vou cadastrar o produto tem um campo de cadastro de unidade que utilizo outra tabela (utilizo uma dblookupcombobox linkada com a outra tabela) e salvo o codigo da unidade e nao a descrição, no produto visualizo normal esta descrição, porem quando vou linkar a tabela produto no dbgrid, na descrição unidade ela me mostra o codigo da unidade e nao a descrição dela.
Ficou um pouco confuso a sua descrição do seu problema, mas pelo que entendi você quer que mostre em uma grid os dados do produto mais a descrição da unidade, se for isso, você precisa utilizar uma Query e fazer o um SELECT da seguinte forma :
SELECT P.CODIGO_PRODUTO, P.NOME_PRODUTO, U.NOME_UNIDADE, U.CODIGO_UNIDADE FROM PRODUTO P INNER JOIN UNIDADE U ON (P.CODIGO_UNIDADE = U.CODIGO_UNIDADE)
Ai você liga essa query em um DataSource e liga no DBGrid, foi isso que entendi do seu tópico, se não for isso, detalha mais para eu tentar te ajudar, blz ?
Espero ter ajudado em alguma coisa, abraço.
Eliel G. Martins
GOSTEI 0
Eliel Martins
08/06/2011
Daniel, então Select que te passei vai funcionar perfeitamente, porque na tabela de produto você grava é código da unidade e não a descrição, o que você deve fazer para linkar com a DBGrid é não utilzar Table e sim uma Query, com isso você faz o SQL que te passei fazendo o JOIN com a tabela Unidade, com isso você terá o produto + a descrição da unidade. Por isso que indiquei para você usar a Query, onde na consulta você faz o relacionamento entre as tabelas.
Eliel G. Martins
GOSTEI 0
Daniel
08/06/2011
Daniel, então Select que te passei vai funcionar perfeitamente, porque na tabela de produto você grava é código da unidade e não a descrição, o que você deve fazer para linkar com a DBGrid é não utilzar Table e sim uma Query, com isso você faz o SQL que te passei fazendo o JOIN com a tabela Unidade, com isso você terá o produto + a descrição da unidade. Por isso que indiquei para você usar a Query, onde na consulta você faz o relacionamento entre as tabelas.
Eliel G. Martins
GOSTEI 0
Adalton Goncalves
08/06/2011
Vamos ver se entendi:
Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.
Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.
na propriedade de seu DBLookupComboBox:
ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;
ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;
KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.
DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE
Espero ter ajudado.
Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.
Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.
na propriedade de seu DBLookupComboBox:
ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;
ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;
KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.
DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE
Espero ter ajudado.
GOSTEI 0
Daniel
08/06/2011
Vamos ver se entendi:
Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.
Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.
na propriedade de seu DBLookupComboBox:
ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;
ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;
KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.
DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE
Espero ter ajudado.
na verdade o db esta funcionando perfeitamente ao visualizar os cadastros que fiz ele me mostra a unidade, porem em outro formulario de exclusao, onde mostro os dados atraves de uma dbgrid ele me traz o codigo. E minha duvida é na montagem do join, pois entendo muito pouci de sql
Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.
Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.
na propriedade de seu DBLookupComboBox:
ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;
ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;
KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.
DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE
Espero ter ajudado.
GOSTEI 0
Daniel
08/06/2011
Vamos ver se entendi:
Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.
Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.
na propriedade de seu DBLookupComboBox:
ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;
ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;
KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.
DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE
Espero ter ajudado.
na verdade o db esta funcionando perfeitamente ao visualizar os cadastros que fiz ele me mostra a unidade, porem em outro formulario de exclusao, onde mostro os dados atraves de uma dbgrid ele me traz o codigo. E minha duvida é na montagem do join, pois entendo muito pouci de sql
Você está usando o DBLookupComboBox e ele está mostrando o codigo, que é o que está sendo salvo na tabela,mas vc necessitaria da UNIDADE.
Se todos os dados foram corretamente alterados no DB, utilizando os Joins devidos, no delphi vai ter de direcionar da seguinte forma.
na propriedade de seu DBLookupComboBox:
ListSource - Ligar a DataSource da Tabela ao qual vai Ter o registro selecionado;
ListField - Ligar o campo que será listado quando o usuário abrir a janela para seleção do registro;
KeyField - Ligar o campo de ligação entre as duas tabelas, ao qual terá o seu valor enviado para gravação.
DataSource: Ligar o DataSource da tabela PRODUTO
Data Field: Ligar tabelaProduto.Unidade
ListSource: Ligar o DataSource da tabela UNIDADE
KeyField: Selecione o Field tabelaUNIDADE.CODIGO
ListField: Selecione o Field tabelaUNIDADE.UNIDADE
Espero ter ajudado.
GOSTEI 0
Wilson Junior
08/06/2011
Faça o SQL como o Eliel colocou.
Qualquer coisa olhe este link http://www.luis.blog.br/join-ou-juncoes-sql-inner-left-right-e-full-outer-join.aspx
Espero ter colaborado.
Qualquer coisa olhe este link http://www.luis.blog.br/join-ou-juncoes-sql-inner-left-right-e-full-outer-join.aspx
Espero ter colaborado.
GOSTEI 0
José
08/06/2011
Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0