Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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 ;-)
Lassé par la pub ? Créez un compte

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

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 ;-)
Lassé par la pub ? Créez un compte
Tom's guide dans le monde