Os campos não aparecem corretamente no DBGrid com a instrução SQL

Delphi

29/10/2023

criei um procedimento com SQL para mostrar os
dados no DBGrid e também para consultar registros. Acontece que
os dados na DBGrid não aparecem corretamente de acordo com a
instrução SQL. Alguém pode me ajudar a corrigir o erro.

procedure TfrmNomeHQ.Pesquisar;
var
SQL : String;
FiltroPesquisa : string;
begin
SQL := 'Select e.Nome as Editora , n.Descricao as Nome' +
'from Editora e join NomeHQ n ' +
'on n.ID_Editora = e.Id order by e.Nome,n.Descricao';

FiltroPesquisa := TUtilitarios.LikeFind(edtPesquisar.Text, DBGrid1);
dmNomeHQ.cdsNomeHQ.Close;
dmNomeHQ.cdsNomeHQ.CommandText := 'Select * from NomeHQ where 1 = 1' + FiltroPesquisa;
dmNomeHQ.cdsNomeHQ.Open;
inherited;
end;
Mauricio Bomfim

Mauricio Bomfim

Curtidas 0

Melhor post

Fábio Lopes

Fábio Lopes

01/11/2023

Você está atribuindo a query principal a uma variável do tipo String, mas não faz nada com ela.
Sim, mas essa primeira parte é somente para mostrar os dados corretamente e segunda parte é a consulta. Como você acha que deve ficar o código?


Acho que a ideia seria você utilizar sua variável "SQL", concatenando a cláusula where e seu respectivo critério diretamente na propriedade CommandText.
Algo assim:

dmNomeHQ.cdsNomeHQ.CommandText := SQL + '' where 1 = 1'' + FiltroPesquisa;

Correto?
GOSTEI 1

Mais Respostas

Arthur Heinrich

Arthur Heinrich

29/10/2023

Você está atribuindo a query principal a uma variável do tipo String, mas não faz nada com ela.
GOSTEI 0
Mauricio Bomfim

Mauricio Bomfim

29/10/2023

Você está atribuindo a query principal a uma variável do tipo String, mas não faz nada com ela.
Sim, mas essa primeira parte é somente para mostrar os dados corretamente e segunda parte é a consulta. Como você acha que deve ficar o código?
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

29/10/2023

os campos estão persisitidos na grade (columns) ?
os campos estão persisitidos no dataset (fields) ?
GOSTEI 0
Arthur Heinrich

Arthur Heinrich

29/10/2023

Sim, mas essa primeira parte é somente para mostrar os dados corretamente e segunda parte é a consulta. Como você acha que deve ficar o código?


Eu não sei como deve ser o seu código.

Porém, se você não executou a consulta, ainda, como pode esperar que os dados sejam mostrados corretamente?

Eu costumo testar a query manualmente. Quando ela retorna o dado exatamente como eu quero que seja exibido, aí coloco a query na aplicação e exibo no grid, que deveria retornar o dado da mesma forma.
GOSTEI 0
POSTAR