Quand l'index primaire ou secondaire d'une table PARADOX est cassé on peut
le regénérer par BDE en le supprimant puis le recréer à condition que la table
s'ouvre avec le BDE.

On peut aussi recréer les index dynamiquement par programme comme dans l'exemple suivant : Je réindexe le fichier STOCK .
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
 
VAR WFILENAME1, WFILENAME2, WFILENAME3, WFILENAME4, WFILENAME5 : STRING;
begin
 if radiobutton10.Checked = true then
 BEGIN
   WFILENAME1:='HTBSTK.PX';   
   WFILENAME2:='HTBSTK.XG0';
   WFILENAME3:='HTBSTK.YG0';
   WFILENAME4:='HTBSTK.XG1';  // EVENTUEL
   WFILENAME5:='HTBSTK.YG1'; // EVENTUEL
   Table1.Active:=FALSE ;
   TABLE1.TableName:='HTBSTK.DB';
   IF fileExists(wfilename1) then DELETEFILE(wfilename1);
   IF fileExists(wfilename2) then DELETEFILE(wfilename2);
   IF fileExists(wfilename3) then DELETEFILE(wfilename3);
   IF fileExists(wfilename4) then DELETEFILE(wfilename4);
   IF fileExists(wfilename5) then DELETEFILE(wfilename5);
   Table1.AddIndex('','EXER;CART',[ixPrimary]);  // primaire
   Table1.AddIndex('XLIBE','EXER;LIBART;CART',[IXUNIQUE]);//secondaire       
   SHOWMESSAGE('FIN MISE A JOUR INDEXES STOCK .................... OK ');
   //
 End ;
Mon problème c'est que ces deux methodes Ne marchent pas quand la table
est endommgée . Comment y remédier pour ouvrir la table au moins avec le
SGBD BDE pour voir mes données ?

Merci de votre aide .....