DBF : Field index out of range

CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012 - 31 juil. 2012 à 15:55
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 1 août 2012 à 21:09
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?
A voir également:

5 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
31 juil. 2012 à 16:29
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
0
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012 1
31 juil. 2012 à 16:49
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?
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
31 juil. 2012 à 17:14
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
0
CharlEm80 Messages postés 66 Date d'inscription vendredi 1 septembre 2006 Statut Membre Dernière intervention 1 août 2012 1
1 août 2012 à 10:05
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
1 août 2012 à 21:09
il faut faire un double-clic sur le TTable et ensuite clic-droit..

cantador
0
Rejoignez-nous