DBF : Field index out of range

Signaler
Messages postés
66
Date d'inscription
vendredi 1 septembre 2006
Statut
Membre
Dernière intervention
1 août 2012
-
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
-
Bonjour,

Je place deux TTable et TDataSource sur une TForm.

J'active les TTables (clic sur Active = True) et je rempli les clauses MasterSource, MasterFields de ma table2 pour référencer la table1.

Je rempli MasterSource tout se passe bien.
Je sélectionne MasterFields bouton "..." et réalise la correspondance Detail Fields <=> Master Fields, je clic sur ADD puis sélectionne un "Available Indexes" et j'obtiens :

Table2: Field index out of range

Qu'est-ce que ça signifie? Où ai-je fait une erreur?

5 réponses

Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
13
Bonjour,

la propriété IndexFileNames doit être identique
à celle de MasterFields
ne rien mettre dans indexfiles et indexname.

voir exemple dans demo/db/CsDemos

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

Ha ok effectivement si je rempli IndexFieldName ça supprime ce qu'il y a dans IndexName.

MasterFields et IndexFieldName sont maintenant identiques (je sélectionne dans un combo) et Delphi5 ne rale pas.

Par contre quand je lance le programme ça rame un moment puis me dit :
Projet test.exe raised exception class EDatabaseError with message 'Record request beyond range of table'

Une idée?
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
13
Hou là avec paradoxe (car je suppose que c'est ton sgbd..)
il peut y avoir de tellement de causes possibles
qu'il est inutile de les lister..

Vérifies bien déjà si tu as intégré dans tes deux TTables TOUS les champs qui ont été créés dans ta base.

Sinon sur clic droit faire "Ajouter tous les champs" car je suppose que l'un d'entre eux n'est pas présent..

Conseil :

N'utilise plus Paradoxe et le BDE, change de sqbd, prend des TQuery à la place des TTable avec intégration d'une requête sql + jointure.

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

J'aimerais autant le passer en Oracle mais bon c'est un programme fait par un autre et qui a été déclaré en fin de vie par les chefs (le programme pas le type) donc on doit faire un minimum d'effort là dessus pour le rendre compatible avec les nouvelles directives et honnêtement j'ai l'impression qu'on s'enlise un peu

Les tables sont des DBF et le database explore indique que ce sont des dBaseIV 2.0

Quand tu dis "Ajouter tous les champs" c'est après avoir fait un clic droit sur quoi? Si je fais un clic droit sur un TTable j'ai (en Delphi5) :

[list]
Fields Editor...
Explore
Delete Table
Rename Table...
Update Table Definition
Align to Grid
Bring to Front
Send to Back
Revert to Inherited (grisé)
Align
Size
Scale
Tab Order
Creation Order
Flip Children
Add to Repository
View as Text
Text DFM
/list
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
13
il faut faire un double-clic sur le TTable et ensuite clic-droit..

cantador