Index d'un table Dbase

Signaler
Messages postés
13
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
7 août 2002
-
Messages postés
13
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
7 août 2002
-
Bonjour,

je crée un base Dbase indiqué dans l'aide de delphi en remplacant ttparadox par ttdbase.

en supprimant la construction d'index min prog marche mais naturellement, excel ne reconnait pas mon .dbf

MAis je suis perdu pour mettre les index, ci dessous le code, comment doit je faire, car j ai vraiment besoin que excel reconnaisse mon dbf

Merci

--------------- CODE

//// Creation de la table
with Table1 do begin
Active := False;
DatabaseName := 'C:\CimChrono';
TableType := ttDBase;
TableName := NomFichier.Text;

if TableName='' then TableName:='Sans_nom.dbf';

/// Ne remplace pas une table existante
if not Table1.Exists then
begin
/// Le composant Table ne doit pas être actif
/// Commence par décrire le type de table et à lui
/// donner un nom
/// Décrit ensuite les champs de la table
with FieldDefs do begin
Clear;
with AddFieldDef do
begin
Name := 'NUM';
DataType := ftInteger;
Required := True;
end;

with AddFieldDef do
begin
Name := 'TPS_PC';
DataType := ftString;
Size := 10;
end;

with AddFieldDef do
begin
Name := 'TEMPS';
DataType := ftString;
Size := 10;
end;

with AddFieldDef do
begin
Name := 'DOSSARD';
DataType := ftString;
Size := 10;
end;
end;

/// Appelle la méthode CreateTable pour créer la table
CreateTable;
end;
Active := True;
Rep.Caption:='C:\CimChrono\' + TableName;
Rep.Visible:=True;
end;

2 réponses

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
2
C'est au moins une question posée de façon claire.

Il y a trois problèmes :

*** Format DBase
Il y a plusieurs format DBase : DBaseIII DBaseIV DBase5 ( pour windows ) et DBase 7. Or par défaut le BDE créer des table au format le plus élevé qu'il connaisse. Il faut donc lui demander de faire un format par défaut plus simple. Pour ce faire il faut :
-lancer l'administrateur BDE
-Onglet configuration
-Sélectionner Configuration\Pilotes\Natif\DBase.
-Dans la liste des valeurs à droite mettre Level=3
-Faire Menu-Objet Appliquer
-Redémarrer Delphi et les applications utilisant le BDE

EXcel ne connait pas DBase 5 ou 7. Par soucis de compatibilité il vaut mieu prendre DBaseIII

*** Types autorisés
Tous les types ne sont pas autorisés par tous les formats de bases de données. DBase ne reconnait que très peu de type. ( seulement 5 pour DBase III ) Le champ NUM ne doit donc pas être de type ftInteger car ce n'est pas reconnu pas DBase, il faut mettre ftFloat à la place.

*** Paramètres
La valeur Required:=True doit être supprimée, car elle n'existe pas dans le format DBaseIII

Si tu changes tout ça alors Excel acceptera d'ouvrir la table ( j'ai essayé avec Excel 97 ). Note que les index ne sont pas utiles pour qu'excel puisse ouvrir la table. De plus seul un index primaire peut être défini sur une table DBase.

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
13
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
7 août 2002

Merci beaucoup, il me semblais bien que cela venait d'une version Ddabse mais j'etais loin du compte. effectivement apres ces manipulation, Excel reconnait mon fichier dbf.
Mais le type ftFloat ne me convient pas a cause de la virgule, j ai donc pris ftSmallint qui fonctionne parfaitement avec. en tout cas merci bcp