Fórum Relação de tabelas #401479
23/05/2011
0
ADOQuery1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * from TABELAPRODUTO);
ADOQuery1.Open;//Ate aqui estou pesquisando o nome do produto cadastrado
ADOQuery2.Close;
ADOQuery2.SQL.Add('Select * from TABELAREPRESENTANTE where CODIGO = '+adoquery1.FieldByName('Fornecedor').DisplayText;
ADOQuery1.Open;Daniel
Curtir tópico
+ 0Posts
23/05/2011
Eliel Martins
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * ');
ADOQuery1.SQL.Add(' FROM TABELAPRODUTO TP ');
ADOQuery1.SQL.Add(' INNER JOIN TABELAREPRESENTANTE TR ON (TR.CODIGO = TP.FORNECEDOR ');
ADOQuery1.Open;
Minha sugestão é que você faça um SQL dessa forma fazendo um JOIN entre essas tabelas, fica uma consulta mais rápida e dessa forma evita você fazer dois select´s. Agora o porque está ocorrendo esse erro, pelo que pude perceber você não limpou a propriedade SQL do componente ADOQuery2 (ADOQuery2.SQL.CLear), se você tiver utilizado essa query para outra consulta e depois tentar fazer outra consulta sem limpar a propriedade SQL acontece erro tábem. Mas se você seguir a instrução que lhe passei acima dará certo.
Espero ter ajudado, qualquer coisa me procure, no que eu puder ajudar estou ai.
Eliel G. Martins
Gostei + 0
25/05/2011
Daniel
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * ');
ADOQuery1.SQL.Add(' FROM TABELAPRODUTO TP ');
ADOQuery1.SQL.Add(' INNER JOIN TABELAREPRESENTANTE TR ON (TR.CODIGO = TP.FORNECEDOR ');
ADOQuery1.Open;
Minha sugestão é que você faça um SQL dessa forma fazendo um JOIN entre essas tabelas, fica uma consulta mais rápida e dessa forma evita você fazer dois select´s. Agora o porque está ocorrendo esse erro, pelo que pude perceber você não limpou a propriedade SQL do componente ADOQuery2 (ADOQuery2.SQL.CLear), se você tiver utilizado essa query para outra consulta e depois tentar fazer outra consulta sem limpar a propriedade SQL acontece erro tábem. Mas se você seguir a instrução que lhe passei acima dará certo.
Espero ter ajudado, qualquer coisa me procure, no que eu puder ajudar estou ai.
Eliel G. Martins
Gostei + 0
25/05/2011
Rafael Mattos
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * ');
ADOQuery1.SQL.Add(' FROM TABELAPRODUTO TP ');
ADOQuery1.SQL.Add(' INNER JOIN TABELAREPRESENTANTE TR ON (TR.CODIGO = TP.FORNECEDOR ');
ADOQuery1.Open;
Minha sugestão é que você faça um SQL dessa forma fazendo um JOIN entre essas tabelas, fica uma consulta mais rápida e dessa forma evita você fazer dois select´s. Agora o porque está ocorrendo esse erro, pelo que pude perceber você não limpou a propriedade SQL do componente ADOQuery2 (ADOQuery2.SQL.CLear), se você tiver utilizado essa query para outra consulta e depois tentar fazer outra consulta sem limpar a propriedade SQL acontece erro tábem. Mas se você seguir a instrução que lhe passei acima dará certo.
Espero ter ajudado, qualquer coisa me procure, no que eu puder ajudar estou ai.
Eliel G. Martins
quando vc tem JOIN vc não pode alterar.
no componentes DBX é só mexer nas ProviderFLAGS, mas no ADO não sei te dizer
Gostei + 0
29/04/2013
José
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)