Ajouter par programmation un index secondaire

haaltruf Messages postés 4 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 27 décembre 2002 - 28 févr. 2002 à 18:37
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 28 févr. 2002 à 22:56
Je galère pour ajouter un index secondaire en programmant (et non en utilisant le DataBase Desktop) pour pouvoir ensuite trier ma base.
La méthode de la TTable AddIndex bloque quand on l'appelle, prétextant un problème de paramêtre... :(
Que faire ?
Merci d'avance
Haaltruf

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
28 févr. 2002 à 19:24
L'exemple fourni dans l'aide :
Table1.AddIndex('NewIndex', 'CustNo;CustName', [ixUnique, ixCaseInsensitive]);

et
Attention Toute tentative de créer un index en utilisant des options inapplicables pour la table déclenche une exception.

Comment appelles-tu cette méthode dans ton code ?

Rappel : pourquoi veux-tu trier ta table (et non la base) puisque les index permettent de présenter des résultats ordonnés en fonction des champs qu'ils utilisent ?
0
haaltruf Messages postés 4 Date d'inscription mercredi 27 février 2002 Statut Membre Dernière intervention 27 décembre 2002
28 févr. 2002 à 21:14
En effet j'appellai la fonction avec un paramêtre non acceptable.
J'utilise bien l'index pour trier la table et non la base de donnée.
Mais autre question qui se pose à moi, puisque je ne peux maintenant pas récupérer (toujours par programmation) les index que j'ai créé...
J'aimerais en effet savoir si ceux-ci sont déja enregistré ou non... Mais la fonction Table.IndexFields[i].AsString ne renvoie rien...
Désolé de poser tant de problème :)
Haaltruf
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
28 févr. 2002 à 22:56
procedure GetIndexNames(List: TStrings);

Renvoie une liste des index disponibles d'une table.
Ex : Table1.GetIndexNames(ListBox1.Items);

et tu obtiendras la liste des index se rapportant à la table.
Tu peux aussi regarder dans le répertoire où est stockée la table si tu vois des fichiers d'extension :

Paradox : xg0, xg1..xgN, *.yg0, yg1..ygN
DBASE : ndx, mdx
0
Rejoignez-nous