Bonjour,

Je sais, le BDE est obsolète mais je cherche tout de même à comprendre une chose.
Dans mon code pour lire un fichier directement dans la structure, un des fichiers que j'ai testé a généré une erreur de lecture de flux.
En cherchant pourquoi, je me suis aperçu que son format est différent. C'est le seul qui avec un "level" 7 alors que les autres sont en level 5.
Le BDEAdmin propose de définir le level dans la configuration DBase.
Sur mon poste le level est à 4.

Hier, j'ai créé une table DBase avec Delphi en utilisant un composant TTable et il a bien généré un fichier level 4.
Aujourd'hui, je refais un test avec un autre fichier et là bizarrement il génère un level 7.

Alors, je ne comprends plus.

Qu'est-ce qui peut bien définir automatiquement ce level dans le fichier ?

------------

Bon, j'ai au moins trouvé une cause pour ceux que ça intéresserait.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
  Table1.FieldDefs.Add('IDX', TFieldType.ftInteger);
  Table1.FieldDefs.Add('NOM', TFieldType.ftString, 25, True);
  Table1.FieldDefs.Add('AGE', TFieldType.ftFloat);
  Table1.TableType := ttDBase;
  Table1.Tablename := 'ESSAI4';
  Table1.CreateTable;
fait une table level 7

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
  Table1.FieldDefs.Add('IDX', TFieldType.ftInteger);
  Table1.FieldDefs.Add('NOM', TFieldType.ftString, 25);
  Table1.FieldDefs.Add('AGE', TFieldType.ftFloat);
  Table1.TableType := ttDBase;
  Table1.Tablename := 'ESSAI4';
  Table1.CreateTable;
fait une table level 4

Le fait de mettre le champ NOM required = True modifie le level