Ajuda - Busca - Membros - Calendário
Versão Completa: procedimento Excluir
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Livio Neiva
fiz todo procedimento em SQL

Ao clicar em excluir quando não tiver item selecionado, da erros.
Eu quero q botão excluir fique inativo quando não estiver nada para excluir
ou q informe q não há itens para ser excluídos.

Gostaria da resposta baseado no procedimento que fiz

procedimento todo em SQL

codBanco é uma variavel global do tipo integer


procedure TF_Bancos.BtnExcluirClick(Sender: TObject);
begin
codBanco := F_Dados.Q_Banco.FieldbyName ('Codigo').Value;
if Application.MessageBox('Deseja Realmente Excluir?','Pergunta do Sistema',mb_YesNo + mb_IconQuestion) = idYes then begin
F_Dados.Q_Banco.Active := False;
F_Dados.Q_Banco.SQL.Clear;
F_Dados.Q_Banco.SQL.Add('DELETE FROM BANCO WHERE CODIGO = '+#39+IntToStr(codbanco)+#39);
F_Dados.Q_Banco.ExecSQL;
end;
end;

Valeu obrigado a todos
ZueRa
Porque simplesmente você não o deixa inativo quando não houver nada selecionado ao invés de deixar inativo quando não houver nada na Query para ser deletado?
É mais simples.

Abraço.
Jhonas
QUOTE

Ao clicar em excluir quando não tiver item selecionado, da erros.
CODE
procedure TF_Bancos.BtnExcluirClick(Sender: TObject);
begin

   codBanco := F_Dados.Q_Banco.FieldbyName ('Codigo').Value;

   if codBanco = 0 then
      begin
         MessageDlg('Nenhum registro foi selecionado para exclusão! ', mtInformation, [mbOK], 0);
         exit;
      end;

   if Application.MessageBox('Deseja Realmente Excluir?','Pergunta do Sistema',mb_YesNo + mb_IconQuestion) = idYes  then begin
      F_Dados.Q_Banco.Active := False;
      F_Dados.Q_Banco.SQL.Clear;
      F_Dados.Q_Banco.SQL.Add('DELETE FROM BANCO WHERE CODIGO = '+#39+IntToStr(codbanco)+#39);
      F_Dados.Q_Banco.ExecSQL;
   end;
end;



QUOTE

Eu quero q botão excluir fique inativo quando não estiver nada para excluir


Neste caso voce tem que testar a variavel codBanco fora do botão Excluir, para poder desabilita-lo ou não

abraço




Livio Neiva
QUOTE(ZueRa @ 18/04/2009 - 12:31) *
Porque simplesmente você não o deixa inativo quando não houver nada selecionado ao invés de deixar inativo quando não houver nada na Query para ser deletado?
É mais simples.

Abraço.


Pro favor nobre amigo!!

pode me mande um exemplo como faço para deixa inativo, mais se for possivel, um exemplo, baseado no meus procedimentos que postei acima.

valeu obrigado!!!
ZueRa
QUOTE(Livio Neiva @ 19/04/2009 - 09:53) *
QUOTE(ZueRa @ 18/04/2009 - 12:31) *
Porque simplesmente você não o deixa inativo quando não houver nada selecionado ao invés de deixar inativo quando não houver nada na Query para ser deletado?
É mais simples.

Abraço.


Pro favor nobre amigo!!

pode me mande um exemplo como faço para deixa inativo, mais se for possivel, um exemplo, baseado no meus procedimentos que postei acima.

valeu obrigado!!!


Olá amigo, bom dia.
Você está "recebendo" o registro que está querendo deletar em algum Edit, DBEdit, alguma coisa?

Abraço.
Livio Neiva
QUOTE(ZueRa @ 19/04/2009 - 10:34) *
QUOTE(Livio Neiva @ 19/04/2009 - 09:53) *
QUOTE(ZueRa @ 18/04/2009 - 12:31) *
Porque simplesmente você não o deixa inativo quando não houver nada selecionado ao invés de deixar inativo quando não houver nada na Query para ser deletado?
É mais simples.

Abraço.


Pro favor nobre amigo!!

pode me mande um exemplo como faço para deixa inativo, mais se for possivel, um exemplo, baseado no meus procedimentos que postei acima.

valeu obrigado!!!


Olá amigo, bom dia.
Você está "recebendo" o registro que está querendo deletar em algum Edit, DBEdit, alguma coisa?

Abraço.


eu tenho um formulario que estar feito em Edits, outro que estar sendo feito em DBdits e outro que estar sendo feito no Proprio DBgrid.

Seria possivel você me mandar um exmplo para cada um???

valeu obrigado pela atenção!!!
Livio Neiva
ola todos!!!

Ele compilou numa boa, mais na hora que eu testei, ou seja tentei excluir sem nenhum registro selecionado ele deu erro.

Outra coisa, se for possível tb fazermos essa correção!!!

Nesse mesmo formularios com os mesmo procedimento, eu tenho uma lista de registro, quando eu excluo um registro, os outros desaparecem, e tenho que listar-los todos novamentes, e não quero assim, eu quero excluir um registros e que os outros registros continue listados.

Como faço para resolver isso??


Veja a menssagem;

Could not convert variant of type (null) into type (Integer)

Com essa linha tachada em azul

codBanco := F_Dados.Q_Banco.FieldbyName('codigo').Value;

procedure TF_Bancos.BtnExcluirClick(Sender: TObject);
begin
codBanco := F_Dados.Q_Banco.FieldbyName('codigo').Value;
if codBanco = 0 then
Begin
MessageDlg('Nenhum registro foi selecionado para Exclusão!',mtInformation,[mbOK],0);
Exit;
end;
if Application.MessageBox('Deseja Realmente Excluir?','Pergunta do Sistema',mb_YesNo + mb_IconQuestion) = idYes then begin
F_Dados.Q_Banco.Active := False;
F_Dados.Q_Banco.SQL.Clear;
F_Dados.Q_Banco.SQL.Add('DELETE FROM BANCO WHERE CODIGO = '+#39+IntToStr(codbanco)+#39);
F_Dados.Q_Banco.ExecSQL;
end;
end;

como faço para resolver??

Valeu obrigado a todos que participam desse fórum!!!


QUOTE(Jhonas @ 18/04/2009 - 19:13) *
QUOTE

Ao clicar em excluir quando não tiver item selecionado, da erros.
CODE
procedure TF_Bancos.BtnExcluirClick(Sender: TObject);
begin

   codBanco := F_Dados.Q_Banco.FieldbyName ('Codigo').Value;

   if codBanco = 0 then
      begin
         MessageDlg('Nenhum registro foi selecionado para exclusão! ', mtInformation, [mbOK], 0);
         exit;
      end;

   if Application.MessageBox('Deseja Realmente Excluir?','Pergunta do Sistema',mb_YesNo + mb_IconQuestion) = idYes  then begin
      F_Dados.Q_Banco.Active := False;
      F_Dados.Q_Banco.SQL.Clear;
      F_Dados.Q_Banco.SQL.Add('DELETE FROM BANCO WHERE CODIGO = '+#39+IntToStr(codbanco)+#39);
      F_Dados.Q_Banco.ExecSQL;
   end;
end;



QUOTE

Eu quero q botão excluir fique inativo quando não estiver nada para excluir
Neste caso voce tem que testar a variavel codBanco fora do botão Excluir, para poder desabilita-lo ou não

abraço


Ele compilou numa boa, mais na hora que eu testei, ou seja tentei excluir sem nenhum registro selecionado ele deu erro.

Outra coisa, se for possível tb fazermos essa correção!!!
Eu tenho uma lista de registro, quando eu excluo um registro, os outros desaparecem, e tenho que listar-los todos novamentes, e não quero assim, eu quero excluir um registros e que os outros registros continue listados.

Como faço para resolver isso??


Veja a menssagem;

Could not convert variant of type (null) into type (Integer)

Com essa linha tachada em azul

codBanco := F_Dados.Q_Banco.FieldbyName('codigo').Value;

procedure TF_Bancos.BtnExcluirClick(Sender: TObject);
begin
codBanco := F_Dados.Q_Banco.FieldbyName('codigo').Value;
if codBanco = 0 then
Begin
MessageDlg('Nenhum registro foi selecionado para Exclusão!',mtInformation,[mbOK],0);
Exit;
end;
if Application.MessageBox('Deseja Realmente Excluir?','Pergunta do Sistema',mb_YesNo + mb_IconQuestion) = idYes then begin
F_Dados.Q_Banco.Active := False;
F_Dados.Q_Banco.SQL.Clear;
F_Dados.Q_Banco.SQL.Add('DELETE FROM BANCO WHERE CODIGO = '+#39+IntToStr(codbanco)+#39);
F_Dados.Q_Banco.ExecSQL;
end;
end;

como faço para resolver??

Valeu obrigado a todos que participam desse fórum!!!
Jhonas
QUOTE

Veja a menssagem;

Could not convert variant of type (null) into type (Integer)

Não pode converter variante de tipo (nulo) em tipo (Inteiro)

codBanco := F_Dados.Q_Banco.FieldbyName('codigo').Value;

Isso é definição de campo de tabela

QUOTE

Outra coisa, se for possível tb fazermos essa correção!!!
Eu tenho uma lista de registro, quando eu excluo um registro, os outros desaparecem, e tenho que listar-los todos novamentes, e não quero assim, eu quero excluir um registros e que os outros registros continue listados.


observe o que voce faz

codBanco := F_Dados.Q_Banco.FieldbyName('codigo').Value;

voce esta usando a mesma query para selecionar o código e depois excluir o registro

if Application.MessageBox('Deseja Realmente Excluir?','Pergunta do Sistema',mb_YesNo + mb_IconQuestion) = idYes then begin
F_Dados.Q_Banco.Active := False;
F_Dados.Q_Banco.SQL.Clear;
F_Dados.Q_Banco.SQL.Add('DELETE FROM BANCO WHERE CODIGO = '+#39+IntToStr(codbanco)+#39);
F_Dados.Q_Banco.ExecSQL;
end;

quando eu excluo um registro, os outros desaparecem

Veja que aqui voce fecha a query, limpa a SQL e depois deleta somente o registro escolhido

o que fica mostrando no DBgrid ??? nada!

eu quero excluir um registro e que os outros registros continue listados

a maneira correta não é usar a mesma query em que voce esta deletando... até poderia ser feito assim, mas não dessa maneira.

Porque não usa o dbnavigator para fazer isso (deletar registros ) na mesma query em que esta visualizando os registros ? é muito mais facil ... ou então trabalhe com querys diferentes apontando para a mesma tabela

abraço








Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.