Duvida de como deletar um registro no DBGrid

03/08/2019

0

Ola Pessoal!

tenho um formulário com os campos de cadastro de funcionários usando o Edit.text, e um DBGrid ligado em uma Query no modulo,
no DBGrid é listado todos os funcionários que estão cadastrados, ao selecionar um deles eu tento excluir do registro o funcionário selecionado,
porem quando clico no DBGrid o funcionário que desejo deletar, e clico no botão Excluir, ele exclui o ultimo registro cadastrado, e não o que eu selecionei no DBGrid.
Se no DBGrid tiver os registros:
1 João
2 Pedro <-Selecionado
3 Paulo

e eu selecionar o funcionário Pedro, e clico no botão excluir, ele deletar o registro Paulo, que cadastrei por ultimo e não o que eu selecionei no DBGrid.

o comando que coloquei no botão excluir é:

procedure TFrmCadFuncionarios.BtnExcluirClick(Sender: TObject);
begin
if MessageDlg('Deseja Excluir o registro?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
DM.TabFuncionarios.Delete;

MessageDlg('Deletado com Sucesso!!', mtInformation, mbOKCancel, 0);
LimparCampos;
DesabilitarCampos;

//AÇÕES DOS BOTÕES
BtnEditar.Enabled := false;
BtnExcluir.Enabled := false;
BtnCancelar.Enabled := false;
BtnNovo.Enabled := true;
end;

//DELETAR TAMBÉM O USUÁRIO ASSOCIADO A ELE
DM.QryUsuarios.Close;
DM.QryUsuarios.SQL.Clear;
DM.QryUsuarios.SQL.Add('DELETE from usuarios where id_funcionario = :id');
DM.QryUsuarios.ParamByName('id').Value := id;
DM.QryUsuarios.Execute;
ListarCampos;
end;

Onde estou errando? Gostaria muito da ajuda de vocês, especialistas em Delphi. Desde já agradeço a todos.
José Soares

José Soares

Responder

Posts

05/08/2019

Ricardo Araujo


bom dia,

pelo que entendi, precisa criar uma proceduce assim :

procedure Delete registro(Id: integer)
begin
DM.QryUsuarios.Close;
DM.QryUsuarios.SQL.Clear;
DM.QryUsuarios.SQL.Add(''DELETE from usuarios where id_funcionario = :id'');
DM.QryUsuarios.ParamByName(''id'').Value := Id; // só que este id vendo do dbgrid blz
DM.QryUsuarios.Execute;

end;
Responder

05/08/2019

José Soares

Ola Pessoal!

tenho um formulário com os campos de cadastro de funcionários usando o Edit.text, e um DBGrid ligado em uma Query no modulo,
no DBGrid é listado todos os funcionários que estão cadastrados, ao selecionar um deles eu tento excluir do registro o funcionário selecionado,
porem quando clico no DBGrid o funcionário que desejo deletar, e clico no botão Excluir, ele exclui o ultimo registro cadastrado, e não o que eu selecionei no DBGrid.
Se no DBGrid tiver os registros:
1 João
2 Pedro <-Selecionado
3 Paulo

e eu selecionar o funcionário Pedro, e clico no botão excluir, ele deletar o registro Paulo, que cadastrei por ultimo e não o que eu selecionei no DBGrid.

o comando que coloquei no botão excluir é:

procedure TFrmCadFuncionarios.BtnExcluirClick(Sender: TObject);
begin
if MessageDlg('Deseja Excluir o registro?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
DM.TabFuncionarios.Delete;

MessageDlg('Deletado com Sucesso!!', mtInformation, mbOKCancel, 0);
LimparCampos;
DesabilitarCampos;

//AÇÕES DOS BOTÕES
BtnEditar.Enabled := false;
BtnExcluir.Enabled := false;
BtnCancelar.Enabled := false;
BtnNovo.Enabled := true;
end;

//DELETAR TAMBÉM O USUÁRIO ASSOCIADO A ELE
DM.QryUsuarios.Close;
DM.QryUsuarios.SQL.Clear;
DM.QryUsuarios.SQL.Add('DELETE from usuarios where id_funcionario = :id');
DM.QryUsuarios.ParamByName('id').Value := id;
DM.QryUsuarios.Execute;
ListarCampos;
end;

Onde estou errando? Gostaria muito da ajuda de vocês, especialistas em Delphi. Desde já agradeço a todos.



Obrigado pela ajuda, fiz como tá escrito e deu certo. Muito obrigado mesmo
Responder

07/08/2019

Ricardo Araujo

op que bom, que deu certo..
Responder

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

Aceitar