Erro em consulta por Group By

Delphi

11/02/2004

Olá!!!

Utilizo os componentes de acesso ao banco de dados num dos datamodules:

SQLDataSetNome
DataSetProviderNome
ClientDataSetNome
DataSourceNome
SQLQueryNome

onde: Nome = nome da tabela.

Se eu passo para o CommandText do ClientDataSet:

consulta := ´Select * from Tabela WHERE df is null and empresa = ´+ sEmpresa[0] + ´ order by iditem´;

ClientDataSetNome.close;
ClientDataSetNome.CommandText := consulta;
ClientDataSetNome.open;

Tudo funciona corretamente.

Mas quando uso uma consulta um pouco mais avançada:

consulta := ´Select iditem, sum(qtd) from Tabela WHERE df is null and empresa = ´+ sEmpresa[0] + ´ Group by iditem´;

me retorna o erro:

SQLDataSetNome: Field ´LC´ not found´

LC é o campo chave da tabela.

O que deve ser? Alguma Propriedade dos componenentes?
No editor de campos do SQLDataSet e do ClientDataSet todos os campos estão listados.


Desde já, agradeço!!!!

José


[color=green:7659f6a49f][b:7659f6a49f]Título Editado por uso indevido de maiúsculas[/b:7659f6a49f][/color:7659f6a49f]


Ejose

Ejose

Curtidas 0

Respostas

Adilsond

Adilsond

11/02/2004

A erro de sua consulta está descrito exatamento em sua frase:

No editor de campos do SQLDataSet e do ClientDataSet todos os campos estão listados.

Veja bem, Voce listou todos os campos da tabela nos fields, mas não está trazendo os mesmos em sua nova consulta. Ou Seja, o campo LC está definido como um field mas voce não está listando-o em sua consulta.


GOSTEI 0
Ejose

Ejose

11/02/2004

A erro de sua consulta está descrito exatamento em sua frase: No editor de campos do SQLDataSet e do ClientDataSet todos os campos estão listados. Veja bem, Voce listou todos os campos da tabela nos fields, mas não está trazendo os mesmos em sua nova consulta. Ou Seja, o campo LC está definido como um field mas voce não está listando-o em sua consulta.



Olá!!!

Obrigado pela resposta Adilson!!!

Como posso fazer usando o Group by e trazer todos os campos para a consulta?


Desde já agradeço!!

José.


GOSTEI 0
Ejose

Ejose

11/02/2004

A erro de sua consulta está descrito exatamento em sua frase: No editor de campos do SQLDataSet e do ClientDataSet todos os campos estão listados. Veja bem, Voce listou todos os campos da tabela nos fields, mas não está trazendo os mesmos em sua nova consulta. Ou Seja, o campo LC está definido como um field mas voce não está listando-o em sua consulta.



Olá!!!

Obrigado pela resposta!!!

Como posso fazer usando o Group by e trazer todos os campos para a consulta?


Desde já agradeço!!

José.


GOSTEI 0
Adilsond

Adilsond

11/02/2004

Voce poderá resolver o seu problema de duas maneiras:

1 - Não criar os fields na query.
2 - Criar uma nova query para a segunda pesquisa. Basta via programacao voce mudar o DataSet que esta ligado ao seu TDatasource que a nova consulta será mostrada na grid.


GOSTEI 0
Ejose

Ejose

11/02/2004

Voce poderá resolver o seu problema de duas maneiras: 1 - Não criar os fields na query. 2 - Criar uma nova query para a segunda pesquisa. Basta via programacao voce mudar o DataSet que esta ligado ao seu TDatasource que a nova consulta será mostrada na grid.



OLÁ!!!

RESOLVI O PROBLEMA USANDO A SEGUNDA OPÇÃO QUE O ADILSON DUTRA ME PASSOU.


Muito Obrigado!!!!

José.


GOSTEI 0
POSTAR