Création par l'Application d'index de fichier archivé automatiquement
Salut! tout le monde.
Je travaille avec Delphi 7 Entreprise, la BDE et Paradox.
J'archive par MonApplication un fichier Maitre2008 dans Maitre2009.
Jusque que là tout va bien. Le fichier maitre2009 est copié correctement.
C'est au moment de créer les index Primaire et Secondaires que ça cloche.
J'ai suivi l'approche de la FAQ :
Citation:
Il suffit d'utiliser la méthode AddIndex du composant TTable afin de créer un index sur la table. La table ne doit pas être ouverte par ailleurs pour que la procédure fonctionne.
Par exemple pour créer un index primaire sur une table Paradox
Code:
Table1.AddIndex('','C2;C1;C3',[ixPrimary]);
Citation:
Et pour ensuite créer un index secondaire :
Code:
Table1.AddIndex('UnIndex','C2;C3',[ ]);
Voici mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| procedure TForm1.bitbtArchiveExerciceClick(Sender: TObject);
var nomTable : TTable;
begin
nomTable := TTable.Create(self);
nomTable.TableType :=ttParadox;
nomTable.TableName :='Maitre2009';
BatchMove1.Source :=tbMaitre;
BatchMove1.Destination :=nomTable;
BatchMove1.Mode :=batCopy;
BatchMove1.Execute;
tbMaitre.Active:=False ;
nomTable.AddIndex('','NaturePrest;Unite;Nom;Prenom',[IxPrimary]);
nomTable.AddIndex('IxMaitree2009','NaturePrest;Unite;Nom;Prenom',[]);
tbMaitre.Active:=True ;
end; |
A la création de l'index Primaire l'Application crée une classe d'exception et le message suivant est affiché :
Citation:
Numéro hors limite Processus stoppé
J'ai fermé le fichier Maitre2008. alors que normalement ce n'a aucune incidence sur la création des index de Maitre2009.
Ce que je ne comprends pas dans la FAQ Delphi c'est 'C2;C1;C3' à la création de l'index Primaire?
Où se situe mon erreur?
Merci
NB : Lorsque je crée manuellement
L'index Primaire.
une TTable (avec comme TTable.Name : NomTable et TTable.TableName : Maitre2009.
un Datasource connecté à NomTable.
et que je lance par un click de Bouton la création de l'Index Secondaire par :
Code:
nomTable.AddIndex('IxMaitree2009','NaturePrest;Unite;Nom;Prenom',[]);
Alors l'index secondaire est créé.