Bonjour,

J'ai un TTable posé sur une fiche.
Je cherche à créer dynamiquement des champs et des indexs dans cette table.

Opération1
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
 
with MyTable do
  begin
    Active := FALSE;
    FieldDefs.Clear;
    IndexDefs.Clear;
    //
    FieldDefs.Add('Champ01',ftInteger);
    FieldDefs.Add('Champ02',ftInteger);
    FieldDefs.Add('Champ03',ftInteger);
    //
    // Création d'un index pour pouvoir trier
    //IndexDefs.Add('Idx','Champ01;Champ02',[ixPrimary]);
    //IndexName := 'Idx';
    //
    Active := TRUE;
    //
  end;
Aucun problème, le tri se fait correctement.
Ensuite, j'ai besoin d'effacer les champs de la table et d'en mettre d'autres :
Opération 2
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
 
with MyTable do
  begin
    Active := FALSE;
    FieldDefs.Clear;
    IndexDefs.Clear;
    //
    FieldDefs.Add('Champ11',ftInteger);
    FieldDefs.Add('Champ12',ftInteger);
    FieldDefs.Add('Champ13',ftInteger);
    //
    // Création d'un index pour pouvoir trier
    //IndexDefs.Add('Idx','Champ11;Champ12',[ixPrimary]);
    //IndexName := 'Idx';
    //
    Active := TRUE;
    //
  end;
Aucun problème de syntaxe, les champs sont bien créés, j'ai bien accès aux données, par contrer aucun tri ne se fait .

J'ai l'impression qu'une fois qu'un index a été affecté dynamiquement à une table, il est impossible d'en définir un nouveau...

Je tourne en rond...pouvez vous m'éclairer ?

--
Benoit