vivicios 0 Denunciar post Postado Novembro 26, 2009 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
wllf 2 Denunciar post Postado Novembro 26, 2009 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
Chrnos 30 Denunciar post Postado Novembro 26, 2009 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
vivicios 0 Denunciar post Postado Novembro 27, 2009 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