Fórum Lookup / SQL #273524
22/03/2005
0
Estou usando SQL para criar campos que referenciam-se a outras tabela.
EX:
Tenho a tabeLa
[color=green:42fbcef34b]
GRUPOS
cod_grupo (pk)
nome_grupo
[/color:42fbcef34b]
ea tabela
[color=red:42fbcef34b]
PRODUTOS
cod_prod(pk)
cod_grupo (fk)
desc_prod
[/color:42fbcef34b]
no Sql de ´PRODUTOS´, selecionei tamem o nome do grupo a qual o produto pertence. [color=blue:42fbcef34b]´SELECT P.*, G.NOME_GRUPO FROM PRODUTOS P, GRUPOS G WHERE P.COD_GRUPO = G.COD_GRUPO´[/color:42fbcef34b]
estah mostrando em um grid blza
quando vou inserir algum produto, nada dá errado
o unico problema, eh quando eu vou alterar algum produto. aih dah um erro dizendo que aquele campo ´nome do grupo´ que eu selecionei no ´PRODUTOS´ não existe
´Collum Unknown NOME_GRUPO´
Alguem sabe como resolver isso?
Obrigado![/code]
Row
Curtir tópico
+ 0Posts
22/03/2005
Isaque
Gostei + 0
22/03/2005
Row
SQLDATASET - PROVIDER -CLIENTDATASET - DATASOURCE
Gostei + 0
22/03/2005
Isaque
SELECT P.*, G.NOME_GRUPO FROM PRODUTOS P, GRUPOS G WHERE P.COD_GRUPO = G.COD_GRUPO
Para:
Select p.*, g.nome_grupo from PRODUTOS p INNER JOIN GRUPOS G ON (p.cod_grupo = g.cod_grupo)
Com isso o Provider vai ´enteder´ que a tabela principal é a PRODUTOS e consequentimente gerar instruções Insert, Update e Delete apenas para campos dessa tabela.
Obs.: Os nomes de cada tabela sempre têm q está em Caixa alta (letras maiúsculas).
Gostei + 0
22/03/2005
Row
mudei a SQL
deixei como vc indicou
porem continua dando o mesmo erro
ouvi falar alguma coisa sobre aquela propriedade ´providerflags´
tem algo relacionado?
Gostei + 0
22/03/2005
Row
tive que adicionar os TFIELDs também no SQLDataSet e fazer o mesmo procedimento mudando a propriedade ´providerflags´
Assim funcionou. Só gostaria de saber, qual é o correto, e o pq de adicionar os campos no SQLDataSet.
Estou usando o conceito de [b:59361b5847]nested table[/b:59361b5847]. isso influencia?
Gostei + 0
23/03/2005
Row
agora o meu problema é o seguinte:
fiz a substituição dos lookups e deixei tudo por SQL.
só que quando eu preciso mostrar um campo que está relacionado através da SQL exatamente na hora que eu seleciono ele(sem dar o apply) o valor do campo não aparece.
EX: tenho um formulario de orçamentos (tabela ORCAMENTOS), e nesse form eu vou adicionando os produtos deste orcamento (ITENS_ORC - referencia a tabela PRODUTOS).
No momento em que adiciono os produtos, nada aparece, só quando eu dou um OK (applyupdates) e abro o formulario denovo para atualizar.
Isso me parece lógico, mais a SQL só seleciona os dados que estão no banco, e como na situação eu ainda estou só adicionando os produtos para dar um unico apply no final, eles não iraum aparecer.
Como posso resolver isso?
Me falaram para usar o evento OnCalcFields
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)