EXCLUIR REGISTRO DE UMA TABELA (PROBLEMA)???

Delphi

28/12/2003

:arrow: Olá Galera do CLube Delphi

:roll: Meu problema é o seguinte, tenho um projeto e nele tem uma parte de Agendar compromisso, fiz uma pesquisa dos Compromisso em Sql por ordenando por mês, Trabalho com Delphi 6 e Paradox, o problema é que coloquei a pesquisa em um ComboBox, quando solicito o mês, é filtrado todos os Compromissos somente daquele mês que é mostra em um DBGrid, até tudo bem, mas o problema é que quero colocar um botão para excluir o compromisso selecionado no DBGrid, só que já tentei vários comandos e sempre aparece esta mensagem de erro:

´´Table is read only´´

Ou seja a tabela é somente leitura, sou praticamente programador iniciante, gostaria da ajuda de vcs, já tentei fazer com que a {query.database.readonly = false}, fechei a tabela, e abri, mas sempre aparece a Mensagem.

:idea: ´´ alguém puder me dar pelo menos uma dica´´

:wink: Desde já, Muito obrigado!


Jfalexandre

Jfalexandre

Curtidas 0

Respostas

Tnaires

Tnaires

28/12/2003

Olá alexandre
Explique melhor por favor. Vc tá tentando excluir o registro diretamente do resultado da query?
A única maneira q eu conheço (mas sou iniciante tb :wink: ) d alterar os resultados d uma query é utilizando o componente UpdateSQL (paleta BDE). Mas vc pode fzer tb o seguinte: supomos q Query1 seja o resultado da consulta, vamos criar uma Query2 com o seguinte SQL:
DELETE FROM TabCompromissos WHERE data LIKE :data
Qdo o usuário clicar no botão, faça o seguinte:
  Query2.ParamByName(´data´).Value := Query1data.Value;
  Query2.ExecSQL;  // Executa a query pra deletar o compromisso

Espero q dê certo. Sucesso


GOSTEI 0
Jfalexandre

Jfalexandre

28/12/2003

Obrigado!
Vou tentar depois retorno...


GOSTEI 0
Lipsil

Lipsil

28/12/2003

Kra,
já tive este problema, mas é simples, faça o seguinte:
clique com o botão direito no arquivo aí da tabela, e clique em propriedades, depois desmarque a caixa ´Somente leitura.´

pronto, achoq é isso aí ;)


GOSTEI 0
Nigro

Nigro

28/12/2003

amigo...
Creio que você esteja tentando apagar um registro após fazer um select, adianto para você que isso não é possível, pois um select na verdade é apenas um view do seu banco e não o banco propriamente dito, aconselho fazer uma rotina em SQL também para apagar isso pois você tem que apagar do banco e não do select.


GOSTEI 0
Joe Ventrue

Joe Ventrue

28/12/2003

se eu fosse vc, antes de criar rotina SQL para isso, tentaria:

:arrow: Mude a Propriedade da query REQUEST LIVE para True;
(...acho q é essa a chave do problema...)
:arrow: depois, coloque no evento do botao a simples linha:
dm.NOMEDAQUERY.delete;

Obs.: Eu sempre uso POPMENU para fazer a exclusao...

:arrow: Entao, se quiser, vc pode criar um popmenu com um opcao(EXCLUIR) e coloque o codigo q descrevi acima...
:arrow: na Propriedade POPMENU da DBGRID coloque o seu POPMENU...

espero ter ajudado...

Abraços
Joe Ventrue


GOSTEI 0
Jfalexandre

Jfalexandre

28/12/2003

Olá Galera, tenho que excluir uma rotina de uma Query1, a rotina é uma pesquisa, onde a busca foi feita através do select * from Tabela, fiquei sabendo que é possível através do componente UpdateSql deletar essa rotina mesmo sendo apenas um filtro, como uso este componente, tentei mas nada funcionou.

Se alguém puder me ajudar, desde já obrigado!


GOSTEI 0
Joe Ventrue

Joe Ventrue

28/12/2003

limpa rotina? como assim??
vc quer limpar as instrucoes da sql, é isso né?

Se vc quiser limpar o q ta na sql é só usar o ´clear´

tipo:

Query1.Sql.Clear;

naum sei se é isso q vc quer, mas isso limpa qualquer rotina q vc colocou na Query...

espero ter ajudado...
se nao...me desculpe...

Um Abraço
Joe Ventrue


GOSTEI 0
POSTAR