Votre question

[Delphi/SQL]Effacer une base de données (résolu)

Tags :
  • Sql
  • Programmation
Dernière réponse : dans Programmation
14 Février 2006 09:44:06

Bonjour à tous

Voila depuis hier je suis entrain de travailler sur un bouton permettant de vider une base de données , utilisée pour afficher l'historique des actions de la première base. Je voudrais pouvoir l'effacer en un seul click de souris sur le bouton6

Voici mon code actuel :
---------------------------------
procedure TForm1.Button6Click(Sender: TObject);
var
i:string;
begin
i:=IBOQuery2.fieldbyname('cle_t_ping').AsString;

IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text := 'delete from T_PING where cle_t_ping='''+i+'''';
IBOQuery2.ExecSQL;
---------------------------------

la base s'appelle T_PING et j'utilise des clés pour modifier/supprimer un élément.

Merci d'avance ;-)

Autres pages sur : delphi sql effacer base donnees resolu

20 Février 2006 09:06:16

apparemment ça s'efface ligne par ligne pour l'instant .
20 Février 2006 10:04:04

Supprimer une bdd c'est : DROP DATABASE `ta_base`
Vider une table c'est : TRUNCATE `ta_table`
Contenus similaires
20 Février 2006 10:36:21

Nouveau code (ne fonctionne pas)
Voici mon code actuel :
---------------------------------
procedure TForm1.Button6Click(Sender: TObject);
var
i:string;
begin
i:=IBOQuery2.fieldbyname('cle_t_ping').AsString;

IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text := 'TRUNCATE T_ping' ;
IBOQuery2.ExecSQL;
---------------------------------

Je veux donc vider toute la table s'appelant T_Ping
20 Février 2006 14:11:14

on peut faire une boucle pour qu'il s'arrete quand il n'y a plus rien ?
Si oui , comment procéder?
Merci
21 Février 2006 08:14:39

Voilà!

Je suis passé par un chemin détourné pour y arriver!

voici donc le code du bouton6 (effacer l'historique)

----------------------------------
procedure TForm1.Button6Click(Sender: TObject);
var
i:string;
begin
entre2.Enabled:=true;
ping.Visible:=true;
pingencours.Caption:='';
lstreplies.Clear;
i:=IBOQuery2.fieldbyname('cle_t_ping').AsString;

cledeping.Caption:=dbgrid2.Fields[0].AsString;
cledeping.Visible:=true;

IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text:= 'delete from T_PING where cle_t_ping='''+i+'''';
IBOQuery2.ExecSQL;

IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text := 'select * from T_PING order by PING_DATE';
IBOQuery2.Open;

while dbgrid2.Fields[0].Value = 0 do
begin
entre2.Enabled:=false;
exit;
end;
----------------------------------

Sur l'événement OnEnter du bouton6 , j'ai mis Entre2timer , qui est le timer permettant d'espacer les suppressions.Le timer est pour l'instant règlé sur 500ms.

Voici le code du timer:

-----------------------------------
procedure TForm1.entre2Timer(Sender: TObject);
var
i:string;
begin
i:=IBOQuery2.fieldbyname('cle_t_ping').AsString;
IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text:= 'delete from T_PING where cle_t_ping='''+i+'''';
IBOQuery2.ExecSQL;

IBOQuery2.Close;
IBOQuery2.SQL.Clear;
IBOQuery2.SQL.Text := 'select * from T_PING order by PING_DATE';
IBOQuery2.Open;
while dbgrid2.Fields[0].Value = 0 do
begin
entre2.Enabled:=false;
exit;
end;

end;
-----------------------------------

Problème résolu !!!
Merci de l'aide mais Truncate ça marchait pas ;-)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS