[Delphi/SQL]Effacer une base de données (résolu)
Forum Programmation : [Delphi/SQL]Effacer une base de données (résolu)
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 ;-)
apparemment ça s'efface ligne par ligne pour l'instant .
Supprimer une bdd c'est : DROP DATABASE `ta_base`
Vider une table c'est : TRUNCATE `ta_table`
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
on peut faire une boucle pour qu'il s'arrete quand il n'y a plus rien ?
Si oui , comment procéder?
Merci
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 ;-)
Il y a 2473 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
