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.
Que faudrait-il faire pour que tous les fichiers d'index secondaires, liés à une table par la méthode OpenIndexFile, soient maintenus ?
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.
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.
Partager