Bonjour,

Je réécris un programme (écrit pour Windows 3.1) qui utilise les fichiers DBase III+ avec des fichiers d'index secondaires (extension *.ndx).
Lorsque je modifie ou ajoute un élément, seul le fichier d'index référencé par la propriété IndexName est maintenu.

Voir l'exemple de programme de test ci-joint.

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
Program Test_Base;
 
uses
  SysUtils, Dbf;
 
var
  Base : TDbf;
 
begin
  Base := TDbf.Create(nil);
  Base.FilePath := 'T:\Base\';
  Base.TableName := 'Points.dbf';
  Base.Open;
  try Base.OpenIndexFile('Point.ndx') except Base.AddIndex('Point.ndx', 'IDENT', []); end;
  try Base.OpenIndexFile('Points1.ndx') except Base.AddIndex('Points1.ndx', 'NOM1', []); end;
  Base.IndexName := 'Points1.ndx';
  Base.Insert;
  Base.Append;
  Base.FieldByName('NOM1').AsString := 'Test '+TimeToStr(Now);
  Base.FieldByName('IDENT').AsString := DateTimeToStr(Now);
  Base.Post;
  Base.Close;
end.
Que faudrait-il faire pour que tous les fichiers d'index secondaires, liés à une table par la méthode OpenIndexFile, soient maintenus ?

Nota : avec une table au format DBase IV, les tous les index contenus dans le fichier *.mbx associé à la table sont bien maintenus. Pour éviter de réécrire d'autres programmes (notamment des DLL utilisées conjointement avec des macros VBA Excel), je souhaiterai conserver mes fichiers d'index secondaires au format *.ndx.

Bien cordialement.