DB Backup and Updates of Backup

            I'm trying to backup my database every 2 minutes for
security problem. I have a procedure that do it now, but  these
procedure does'nt work always, sometime, Delphi stop and says that my
index does'nt exist.

    If somebody can help.

--------------------------------------------------------------------
Procedure TStock.Backup_Stock;
Var
   DskSpace : LongInt;
   Dummy : String;
   Heure : String;

Begin

   DM.Stock.DisableControls;

   // Espace Libre sur le disque C
   DskSpace := DiskFree(3);

   // S'il nous reste plus  de 1 Meg sur le disque, on peut commencer le

backup...
   if DskSpace > 1024000 then
      Begin
         If Old_Day <> Date then
            Begin
               // We backup on the old day

               DateTimeToString(Dummy,'dd',Old_Day);
               DM.Stock_B.TableName := Dummy + '_J.DBF';

               // ici l'on copy sur la veille.
               DM.Stock_B.BatchMove(DM.Stock, batCopy);

               //Faut Creer l'index de la copy ...
               DM.Stock_B.AddIndex('BY_NUM_COL', 'NUM_COLIS', []);

               Old_Day := Date;
            End
         Else
            Begin
               DateTimeToString(Heure,'hh',Time);
               If Old_Hour <> Heure then
                  Begin
                     DM.Stock_B.TableName := Heure + '_H.DBF';

                     // New one
                    DM.Stock_B.BatchMove(DM.Stock, batAppendUpdate);

                     // Creation of the index
                    DM.Stock_B.AddIndex('BY_NUM_COL', 'NUM_COLIS', []);

                     Old_Hour := Heure;
                  End
               Else
                  Begin
                     DM.Stock_B.TableName := Heure + '_H.DBF';

                     // Il ne faut pas oublier de specifier l'index ...
                     DM.Stock_B.IndexName := 'BY_NUM_COL';

                     // ici l'on met a jour et l'on ajoute dans la base
de donnes
                     DM.Stock_B.BatchMove(DM.Stock, batAppendUpdate);

                     Old_Hour := Heure;
                  End;
            End;

      End
   Else
      Begin
         // ERREUR BLOQUANTE ...
         ERREUR_BLOQUANTE(2,'');
      End;

   // Reactive les controles visuels
   DM.Stock.EnableControls;
End;

--------------------------------------------------------------------