Deletar Registro por Sql

13/01/2010

1

ola galera...bom tenho uma consulta exibida no dbgrid e gostaria de deletar um registro através do sql...gostaria que quando o registro tivesse selecionado do dbgrid e clicasse no botao excluir o registro fosse deletado.tenho o seguinte codigo....
dm.cdsfor.Close;
dm.cdsfor.CommandText:='delete from FORNECEDOR where codigo=:codigo';
dm.cdsfor.Params[0].AsInteger:=DBGrid1.Fields[0].AsInteger;
dm.cdsfor.Execute;

da a seguinte mensagem de erro...."access violation at address 004d7b40 in module.... o que poderia estar errado? por favor me ajudem...
Responder

Posts

20/01/2010

Paulo Freire

1º veja se seu DataSetProvider esta com a propriedade AlowCommandText como true, para aceitar comandos SQL.

Ou então faça uma queryja com a instrução SQL de delete e chame-a

  if MessageDlg('Confirma a Exclusão do Crachá de ' + DBGrid2.Fields[1].AsString + ' ??? ',
              mtConfirmation,[mbYes, mbNo],0)= mrYes then

  with DM.MinhaQuery_ExcluiCracha do
  begin
    Close;
    Parameters.ParamByName('xCodigo').Value := DBGrid2.Fields[0].AsInteger;
    ExecSQL

  end;



  end;
Responder