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

29/10/2023

0

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

Responder

Post mais votado

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?

Fábio Lopes

Fábio Lopes
Responder

Mais Posts

30/10/2023

Arthur Heinrich

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

31/10/2023

Mauricio Bomfim

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?
Responder

31/10/2023

Emerson Nascimento

os campos estão persisitidos na grade (columns) ?
os campos estão persisitidos no dataset (fields) ?
Responder

01/11/2023

Arthur Heinrich

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.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar