Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vivicios

[Resolvido] Deletar atravez de ADOQuery

Recommended Posts

Bom Dia gente, sou novo no forum.

 

 

Tenho uma botão que tem que deletar todos os registros que tem no Campo Tipo "00" já pesquisei nas não consegui achar um exemplo de como fazer isso, por isso peço ajudar de vocês.

 

 

procedure TForm1.Button3Click(Sender: TObject);

begin

ADOQuery1.SQL.clear;

ADOQuery1.SQL.add('delete * from Dados where Tipo=:00');

ADOQuery1.ExecSQL;

ADOTable1.Close;

ADOTable1.Open;

end;

 

 

Quando executo esse botão ele não faz nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vivicios, essa linha do seu código : "ADOQuery1.SQL.add('delete * from Dados where Tipo=:00');"

 

'Tipo = 00' é o correto, os dois pontos é usado para passagem de valores por parâmetros, o que acho eu q não é o seu caso.

 

Testa aí !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Complementando a resposta do colega, no delete não se usa o * .... você escreveu sua query assim:

 

delete * from Dados where Tipo=:00

No seu caso, tem dois erros: o primeiro é que usou um *. Deveria ser: delete from Dados. O segundo é que os componentes TQuery, como o colega citou acima, interpretam o :alguma_coisa como sendo uma passagem de parâmetro, o que lhe obrigaria a passar o valor do mesmo usando um parambyname(00).asTipoInformacao antes de dar o execsql.

 

Dê uma verificada nisto... sugiro que antes de jogar uma query no delphi você a teste no seu BD de teste e só após ela estar 100% funcional nele você a codifique no sistema.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar gostaria de agradeçer a ajuda do WLLF e do Chrnos.

 

Segui o seu conselho Chrnos fiz primeiro no BD teste consegui esse código la:

 

DELETE *

FROM Dados

WHERE (((Dados.Tipo)="00"));

 

Ai percebi que o erro alem dos que vocês me indicaram foi que tinha esquecido de colocar o 00 entre as aspas "00".

 

ADOQuery1.SQL.clear;

ADOQuery1.SQL.add('delete * from Dados where Tipo = "00"');

ADOQuery1.ExecSQL;

ADOTable1.Close;

ADOTable1.Open;

 

Agora funciona certinho, muito obrigado mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.