Consulta SQL
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
Curtidas 0
Respostas
Emerson Nascimento
05/04/2006
têm que ser do mesmo tipo do campo da tabela
GOSTEI 0
Camilo
05/04/2006
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+´´´´;
´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+´´´´;
GOSTEI 0
Emerson Nascimento
05/04/2006
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;
GOSTEI 0
Felipeiw
05/04/2006
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
Abs
GOSTEI 0