Consulta SQL

05/04/2006

Estou utilizando dbexpress para acessar mhs tabelas, estou precisando fazer uma consulta em um tabela e fazer um join em outro para pegar o nome do cliente, tenho que criar um campo no ClientDataset, que tipo tem que ser? Para eu poder lista-lo no DBGrid?


DM.CdsPedidos.CommandText := ´SELECT a.*, b.nomcli FROM ftsolicitacao1 a, ftclientes b WHERE a.codcli = b.codcli and datsoc BETWEEN ´´´+EDatini.DateText+´´´ AND ´´´+EDatfin.DateText+´´´´;



Felipeiw

Respostas

05/04/2006

Emerson

têm que ser do mesmo tipo do campo da tabela


Responder Citar

05/04/2006

Camilo

eu faço + ou - assim
´SELECT ´+
´ a.*, b.nomcli ´+
FROM ftsolicitacao1 a
left outer join ftclientes b on (a.codcli = b.codcli)
where datsoc BETWEEN ´´´+EDatini.DateText+´´´ AND ´´´+EDatfin.DateText+´´´´;


Responder Citar

05/04/2006

Emerson

dê preferência por parâmetros:
with DM.CdsPedidos do
begin
  CommandText :=
    ´SELECT a.*, b.nomcli ´+
    ´FROM ftsolicitacao1 a ´+
    ´inner join ftclientes b on (b.codcli = a.codcli) ´+
    ´WHERE datsoc BETWEEN :dataini AND :datafim ´;
  Params.ParamByName(´dataini´).AsDateTime := data_inicial;
  Params.ParamByName(´dataini´).AsDateTime := data_final;
  Open;
end;



Responder Citar

06/04/2006

Felipeiw

Obrigado galera, mas nao deu certo, digo o seguinte tenho que criar o campo no fields do clientdatset como, data,calculed,lookup,internalcalc, tentei com todos, estou criando exatamente do mesmo tipo e tamanho, a consulta foi alterada conforme sugestao porem nao retorna o nome do cliente quando o coloco no dbgrid, o restante dos dados aparecem, testei tb mh linha de codigo no console do bd e funcionou o mesmo com o codigo sugerido, porem no delphi o problema continua.
Abs


Responder Citar