Erro inner join

Delphi

19/07/2011

Tenho um aplicativo de cadastro de pedido e ao mesmo tempo o cadastro de produtos, pois tenho diversos produtos para um unico pedido. Criei um topico estes tempos com duvida no inner join pois precisava mostrar os dois em uma dbgrid. Conseguiram resolver meu problema com o seguinte codigo:
Select oc.codigo, oc.fornecedor, oc.estatus, oc.valor4, 
it.produto, it.unidade, it.valorunitario, it.qtd, it.valortotal 
from tabelaoc as oc inner join tabelaitem as it on oc.codigo = it.codigo

Porem no relatorio devo pesquisar os pedidos atraves de dois radiobuttons:
if radiobutton1.Checked = true then 
begin 
ADOQuery1.Close; 
ADOQuery1.SQL.Clear; 
ADOQuery1.SQL.Add('Select * from TABELAOC'); 
ADOQuery1.SQL.Add('where CODIGO LIKE ' + QuotedStr('%' + edit1.Text + '%')); 
ADOQuery1.SQL.Add('and ESTATUS = ' + QuotedStr('False')); 
ADOQuery1.SQL.Add('order by CODIGO'); 
ADOQuery1.Open; 
end; 
if radiobutton2.Checked = true then 
begin 
ADOQuery1.Close; 
ADOQuery1.SQL.Clear; 
ADOQuery1.SQL.Add('Select * from TABELAOC'); 
ADOQuery1.SQL.Add('where FORNECEDOR LIKE ' + QuotedStr('%' + edit1.Text + '%')); 
ADOQuery1.SQL.Add('and ESTATUS = ' + QuotedStr('False')); 
ADOQuery1.SQL.Add('order by FORNECEDOR'); 
ADOQuery1.Open; 
end;

Ao tentar procurar na edit ele da o seguinte erro:
'ADOQuery1: Field 'produto' not found.'
Nao sei pq ele nao localiza o produto.
Daniel

Daniel

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

19/07/2011

pelo meu entendimento as três instruções são aplicadas no mesmo objeto. sendo assim, as instruções precisam ser equivalentes na seleção dos campos, principalmente se houver campos persistidos.

você deve alterar (1) as instruções ou (2) criar um novo objeto dataset e associá-lo ao relatório (vejo a segunda opção como mais coerente).

GOSTEI 0
Daniel

Daniel

19/07/2011

pelo meu entendimento as três instruções são aplicadas no mesmo objeto. sendo assim, as instruções precisam ser equivalentes na seleção dos campos, principalmente se houver campos persistidos.

você deve alterar (1) as instruções ou (2) criar um novo objeto dataset e associá-lo ao relatório (vejo a segunda opção como mais coerente).

Como devo fazer isso, pois tenho muita difculdade em linguagem sql e nao entendi como devo linkar o novo dataset pois o meu adoquery esta configurado com a tabelapedido e na opção sql que ele faz o inner join, se eu criar um novo dataset como devo configura-lo
GOSTEI 0
José

José

19/07/2011

Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0
POSTAR