Consulta Sql

Delphi

06/03/2004

Bem pessoALL, tenho um consulta entre datas cujo resultado aparece num DbGrid, mas ocorre o seguinte tenho uma tabela relacionada..a de ´concorrente´. tabela pincipal ´produtos´
No Grid, quando aparece o concorrente aparece o cod do concorrente e nao o nome....
Como faço para aparecer o nome do concorrente no grid, e nao o COD...
Estou usando SQL...

aqui vai a pesquisa de datas que uso.



QryProdutos.Close;
QryProdutos.Sql.Clear;
QryProdutos.Sql.Add(´Select* From Produtos´);
QryProdutos.Sql.Add(´Where DtOferta >=:inicio´);
QryProdutos.ParamByName(´inicio´).AsDate := DateTimePicker1.date;
QryProdutos.Sql.Add(´and DtOferta <=:Termino´);
QryProdutos.ParamByName(´Termino´).AsDate := DateTimePicker2.date;
QryProdutos.Prepare;
QryProdutos.Open;




[]´s
Juninho


Junior#

Junior#

Curtidas 0

Respostas

Skaarj

Skaarj

06/03/2004

seguinte.. tu ja mexeu com campos calaculados?
Vamos fazer um:
Dá dois cliques em cima do componente TQuery;
Abre o submenu e escolhe ´New Field´;
Na tela que abre escolha um nome [calConcorrente serve?]. escolha tipo [como é nome é string] e tamanho [vamos por 50 no exemplo];
Blz.. Agora sete a coluna de concorrente do grid nesse campo recém criado;
Agora clique no TQuery e abra seus eventos, repare que tem um chamado OnCalcFields, dá dois cliques e agora voce vai fazer o seguinte:
cria um select que pesquise o nome do concorrente pelo codigo e joga dento desse campo, assim:
with Qryconcorrente do
begin
  close;
  sql.text := "select nome from concorrentes where codigo = :Scod";
  parambyname(´scod´).asstring:= qryprincipal.fieldbyname(´cod_concorrente´).asstring;
  open;
end;
qryprincipalcalconcorrente.asstring := qryconcorrente.fieldbyname(´nome´).asstring;

oq fizemos foi criar um campo, que cada para cada linha da query 1 faz uma pesquisa com outra query recebe o nome a partirvalor pesquisado do codigo...


GOSTEI 0
Tnaires

Tnaires

06/03/2004

Ou então, mude seu SQL:
SELECT * FROM CONCORRENTES, PRODUTOS
WHERE CONCORRENTES.CODIGO = PRODUTOS.CODIGO
AND DTOFERTA BETWEEN :DATA_INICIO AND :DATA_FIM

Aí é so adicionar o campo no DBGrid.
Abraços


GOSTEI 0
POSTAR