Duvida de como deletar um registro no DBGrid
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.
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
Curtidas 0
Respostas
Ricardo Araujo
03/08/2019
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;
GOSTEI 0
José Soares
03/08/2019
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.
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
GOSTEI 0
Ricardo Araujo
03/08/2019
op que bom, que deu certo..
GOSTEI 0