Problema ao Selecionar um registro no DBGrid para excluir

Delphi

31/05/2019

Ola! Bom Dia a Todos deste Fórum.

Bom meu problema poderá ser bem simples pra muitos, mas pra mim ta gerando duvidas.
o caso é o seguinte: tenho um formulário de cadastro de funcionário, com todos os campos preenchidos corretamente em um "Edit.text", e logo abaixo coloquei um DBGrid onde mostra os campos preenchidos no fomulário, para que ao clicar em uma linha do DBGrid ela seja selecionada e eu possa deletar este registro.

no modulo o componente Query ta configurado desta forma:
select * from funcionarios order by id desc

onde é mostrado os novos registro em ordem decrescente. mas quando clico em uma linha no DBGrid para excluir, a exclusão é feita do primeiro registro e não o que eu selecionei, já mudei varias vezes a linha de comando na Query mas não tive exito.

Poderiam me ajudar de como seria o correto para que a linha no DBGrid que for selecionada seja a excluída?
José Soares

José Soares

Curtidas 0

Respostas

Anderson Gonçalves

Anderson Gonçalves

31/05/2019

Ola! Bom Dia a Todos deste Fórum.

Bom meu problema poderá ser bem simples pra muitos, mas pra mim ta gerando duvidas.
o caso é o seguinte: tenho um formulário de cadastro de funcionário, com todos os campos preenchidos corretamente em um "Edit.text", e logo abaixo coloquei um DBGrid onde mostra os campos preenchidos no fomulário, para que ao clicar em uma linha do DBGrid ela seja selecionada e eu possa deletar este registro.

no modulo o componente Query ta configurado desta forma:
select * from funcionarios order by id desc

onde é mostrado os novos registro em ordem decrescente. mas quando clico em uma linha no DBGrid para excluir, a exclusão é feita do primeiro registro e não o que eu selecionei, já mudei varias vezes a linha de comando na Query mas não tive exito.

Poderiam me ajudar de como seria o correto para que a linha no DBGrid que for selecionada seja a excluída?


José você não citou o código usado para excluir.

Deduzindo que você usa a paleta ADO.

Digamos que a QueryExcluir seja o nome da sua Query usada para excluir registros.
E que a QueryConsulta seja a query que está gerando os registro do DbGrid.


Tenta assim para excluir.

no evento On Click do seu botão de exclusão:

// -- Verifique se existem registros para serem excluídos.
if QueryConsulta.RecordCount = 0 then
begin
ShowMessage(''Nenhum registro encontrado para executar a operação solicitada!'');
Exit;
end
else
begin
With QueryExcluir do
begin
close;
sql.clear;
sql.add(''delete from TABELA'');
sql.add(''Where ChavePrimária = :Parametro'');
Parameters.ParamByName(''Parametro'').Value := QueryConsulta.FieldByName(''ChavePrimaria'').asInteger;
ExecSQL;
SpeedButton1Click(sender); // -- Executar o botão de consulta para atualizar a sua lista de registros do DBGrid.
ShowMessage(''Exclusão feita com sucesso!'');
end;
end;


Espero ter ajudado.
Qualquer coisa me chama no email: anderson.workinfo@gmail.com
GOSTEI 0
POSTAR