Master/Detail relation failed, no index open

Signaler
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012
-
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012
-
Bonjour les gens,

J'ai ajouté dans un projet existant un HalcyonDataSet qui pointe vers une table (fichier dBaseIII+) où je dois récupérer des infos.

Mais cette table auquel je dois accéder est lié à une autre table. Table qui est déjà présente dans la Form via un autre HalcyonDataSet.

Je créé donc un nouveau HalcyonDataSet et le fait pointer sur ma nouvelle table.

Jusque là : OK. Reste à relier les deux tables. Autrement dit, les deux HalcyonDataSet. Je veux donc remplir les propriétés MasterSource et MasterFields et je ne trouve pas de lien vers l'HalcyonDataSet existant.

Je remarque que le MasterSource ne peut se remplir que de DataSource, j'en créé donc un et le lie au HalcyonDataSet (celui auquel je veux accéder avec mon MasterSource/MasterFields). Là je peux relier les deux HalyconDataSet.

Je fais PLAY tout confiant et bardaf :

Projet stup.exe raised exception class EDatabaseError with message 'Master/Detail relation failed, no index open for HOSPIT.DBF'
Process stopped. Use Step or Run to continue.
(je suis dans c:\program files\borland delphi5\halcyon\halcn6db.pas)

Bref, à mon avis j'ai du oublier de faire quelque chose mais quoi?

P.S.: HOSPIT.DBF c'est la table que j'essaye d'ajouter au projet. C'est donc le nouvel HalcyonDataSet.

7 réponses

Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012

J'ai essayé de faire ceci :

CREATE INDEX INumero ON 'HOSPIT.DBF' (Numero) ça créé un index sur la colonne utilisée dans le MasterFields mais n'arrange rien du tout

Par contre DROP INDEX 'HOSPIT.DBF'.INUMERO me répond invariablement table is busy, j'ai du écraser mes DBF par une copie de sauvegarde pour enlever les indexes

Si quelqu'un peut m'aider ça serait super sympa car je suis un peu perdu again

Merciii
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012

Par contre, je remarque qu'il y a une propriété IndexName qui semble nécessaire pour relier deux HalcyonDataSet.

J'ai refais CREATE INDEX INumero ON 'HOSPIT.DBF' (Numero) mais la propriété IndexName reste désespérément vide.

Comment ça marche?
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012

J'ai remplacé le HalcyonDataSet par un TTable et maintenant j'ai :

Corrupt file - other tant header File : F:\JJ\STUPD\Db\EVENTS.XG2 Process stopped

*très gros soupir*
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012

et si je repart du backup que j'avais fait, j'ai :

Exception class EDatabaseError with message 'Record request beyond range of table'

J'comprends plus rien
Messages postés
2106
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Salut,

il faut informer la propriété MasterFields!

A+


Composants Cindy pour Delphi
Faites une donation.
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012

Il y est déjà ... mais j'ai bazardé et fait autrement et là ça fonctionne.
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012

Me revoilà bloqué dans le même genre de gallère, je dois relier deux Halcyon et rien à faire :
[list]
j'ai deux Halcyon
j'ai bien renseigné le mastersource et masterfield
dans les deux fichiers DBF que je veux lier, j'ai bien un INDICE sur le champ concerné
/list

Le combo IndexName ne propose rien

Une idée?