Bonjour,
J'essaye de supprimer les enregistrements vides d'un ensemble de données XML (TClientDataSet), Mais il y a quelque chose qui m'échappe, ma procédure elle ne tourne pas rond elle me supprime tous les enregistrements.
1: On parcourt les enregistrements. (while not ClientDataSet.Eof).
2: On définie la variable (CheckEmpty = True) Champs vides par défaut.
3: On parcourt les champs (For ClientDataSet.IndexDefs.Count).
4: On vérifie que le champ n'est pas vide, Si le champ n'est pas vide (CheckEmpty = False).
5: Si (CheckEmpty = True) les champs sont vides, on supprime l'enregistrement.
Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 procedure TForm1.Button2Click(Sender: TObject); var IField: Integer; CheckEmpty: Boolean; begin if ClientDataSet.Active then begin ClientDataSet.DisableControls; ClientDataSet.First; while not ClientDataSet.Eof do begin CheckEmpty := True; { Champs vides par défaut } for IField := 0 to ClientDataSet.IndexDefs.Count - 1 do { On parcourt les champs } begin if ClientDataSet.Fields[IField].AsString <> EmptyStr then CheckEmpty := False; { Le champ n'est pas vide } end; if CheckEmpty then begin try { Supprimer l'enregistrement } ClientDataSet.Delete; except ClientDataSet.Next; end; end else ClientDataSet.Next; end; { while } ClientDataSet.EnableControls; end; end;
Partager