Accueil > Forum > > > > erreur 26 lors de l'ouverture de fichiers de données
erreur 26 lors de l'ouverture de fichiers de données
mardi 24 juin 2008 à 18:06:42 |
erreur 26 lors de l'ouverture de fichiers de données

stepber
|
Bonjour, je reprends actuellement un logiciel développé avec VFP6. Une instruction d'ouverture de table FoxPro dans le programme provoque de temps en temps une erreur "26 - La table n'a aucun ordre d'index actif." chez un utilisateur. La partie de programme concernée, et donc cette instruction, est exécutée de très nombreuses fois dans le logiciel sans générer d'erreur. Par contre, lorsqu'une erreur 26 s'est produite, il devient impossible d'ouvrir la table (fichier DBF) concernée sans faire au préalable une réindexation. Cette erreur n'est pas reproductible systématiquement et se produit par exemple assez fréquemment sur l'instruction "use ..." de l'exemple ci-dessous. Cette erreur se produit aussi sur d'autres instructions "use ..." du logiciel. nom_fichier = chemincomplet + "dq_prg\DQCM_TRV" IF !USED("SSDET_DQCM") use (nom_fichier) in 0 order 1 alias SSDET_DQCM shared again ENDIF select SSDET_DQCM ... Je suppose donc que les indexes définis sur la table sont détruits ou altérés lorsque l'erreur se produit, mais il ne semble pas y avoir d'instructions qui pourraient expliquer cela ailleurs dans le logiciel. Etant débutant sur FoxPro, tout avis ou piste d'enquête est bienvenu...
Merci d'avance
|
|
mardi 24 juin 2008 à 19:15:11 |
Re : erreur 26 lors de l'ouverture de fichiers de données

MichelAtoutFox
|
Bonjour,
l'erreur 26 est provoquée par la partie "ORDER 1" de ta clause use. Peux-tu nous dire comment sont créés ces index, et en particulier s'il s'agit : - d'index structurel condensé (matable.cdx, avec le nom de l'index identique à celui de la table), - d'index structurel non condensé (monfichier.cdx, le nom est différent de celui de la table), - ou d'index "ordinaires" (monfichier.idx)
Dans tous les cas, méfie-toi comme de la peste de l'adressage des tag d'index par leur numéro: use matable ... order 1 est à proscrire, il faut lui préférer use matable...order <NomDuTag>.
|
|
mercredi 25 juin 2008 à 12:27:55 |
Re : erreur 26 lors de l'ouverture de fichiers de données

stepber
|
Merci pour la rapidité de cette réponse.
Les index associés aux tables concernées par mes problèmes se trouvent toujours dans un fichier CDX du même nom que le fichier DBF contenant les données (par exemple, dans le cas cité, la table s'appelle DQCM_TRV.DBF et le fichier d'index s'appelle DQCM_TRV.CDX).
J'ai du mal à saisir la différence, hormis une plus grande clarté du code, entre "use matable ... order 1" et "use matable...order <NomDuTag>" : y a t'il un risque de perte de l'association entre le nom d'un index et son numéro ? Est-ce à cause du fait que le numéro d'index réprésente son rang dans l'ordre de création des index ?
L'utilisation du nom de l'index n°1 à la place du numéro dans mon "...order 1" pourrait-elle suffire à m'éviter l'erreur 26 qui se produit parfois ? Si je suis la documentation, la syntaxe à utiliser en remplacement serait donc probablement "... order tag <nom donné à l'index>", mais je ne suis visiblement pas obligé de rajouter la clause "index DQCM_TRV.CDX" puisque le fichier CDX porte le même nom que mon fichier DBF.
|
|
jeudi 26 juin 2008 à 11:49:34 |
Re : erreur 26 lors de l'ouverture de fichiers de données

MichelAtoutFox
|
1) "... order 1" Il s'agit d'une fonctionalité qui n'est destinée qu'à assurer la comptaibilité avec les versions très antérieures. l'utilisation de "... order 1" est risquée parceque les numéro d'index peuvent être modifiés sans que tu le saches: cette numérotation est interne à VFP, et il vaut mieux maitriser les choses en utilisant le nom du tag d'index.
2) ton fichier d'index est bien du type cdx structurel, il ne faut surtout pas spécifier de nom de fichier d'index après la clause ... order tag <nomTag>
3) quelle est la structure de cette table, et quelle est l'expression de cet index 1?
Es-tu ABSOLUMENT certain que ce soit cette instruction "use..." qui déclenche l'erreur? tu as un gestionnaire d'erreur qui enregistre la ligne qui provoque l'erreur, tu as vu cette ligne en erreur en débogage?
je rechercherais plutot du coté d'un SEEK (ou une de ses variantes)
|
|
jeudi 26 juin 2008 à 17:30:02 |
Re : erreur 26 lors de l'ouverture de fichiers de données

stepber
|
Merci pour ces explications : effectivement je comprends qu'il vaut mieux utiliser le nom d'index qu'un numéro mais, comme évoqué, je reprends un logiciel en VFP6 et toutes les ouvertures de fichiers sont effectuées en utilisant le numéro de l'index et non son nom donc je modifierai ça progressivement dans le logiciel.
En effet, j'ai une gestion d'erreur qui affiche un message d'erreur personnalisé et écrit dans un log notamment les informations retournées par les fonctions FoxPro program() et lineno(), ce qui m'a permis de localiser la ligne de code en cause et ainsi de voir que ces erreurs 26 se produisent toujours sur une instruction "use..." (parfois sur d'autres instructions "use..." que mon exemple). Pour en être bien certain car en consultant l'aide j'ai vu que cette erreur survenait effectivement plutôt sur des instructions de type SEEK, j'écris aussi dans le même log des phrases de texte uniques juste avant et juste après l'instruction "use..." de mon exemple, et j'ai pu donc visualiser récemment qu'une erreur 26 s'est bien produite chez l'utilisateur sur la ligne de code "use...order 1..." en récupérant son log.
Un de mes gros soucis est que, précisément, je n'ai personnellement jamais réussi à reproduire cette erreur en débogage, mais je vais bientôt récupérer les données que l'utilisateur a sauvegardées lorsque la dernière erreur 26 est survenue chez lui (notamment ses fichiers DQCM_TRV.DBF et DQCM_TRV.CDX) : j'espère qu'en utilisant ces données je reproduirais enfin l'erreur en débogage ! Cependant, même en cas de reproduction de l'erreur, je ne suis pas certain de trouver une explication, à moins que le remplacement de "... order 1" par "... order tag <nom de l'index>" dans l'instruction d'ouverture ne suffise à éviter le problème...
Comme demandé, voici un résumé de la structure de la table DQCM_TRV en cause dans mon exemple : domaine caractère 2 item_dom caractère 3 topologie caractère 20 ordre_art numérique 4 0 article caractère 23 cd_compo caractère 20 ... ordre numérique 4 0 ...
Il y a 24 index définis sur cette table, le 1er qui doit être celui à utiliser est défini ainsi : ordre : croissant nom : DQCM_TRV01 (c'est donc ce nom que je compte utiliser à la place du 1 dans "use...order tag DQCM_TRV01...") type : régulier expression : article+cd_compo+STR(ordre,4) filtre : vide
|
|
jeudi 26 juin 2008 à 22:19:21 |
Re : erreur 26 lors de l'ouverture de fichiers de données

MichelAtoutFox
|
Questions complémentaires: les tables sont-elles sur la machine sur laquelle l'erreur se produit, ou bien sur un poste réseau? la table qui pose problème est-elle rattachée à un dbc, ou s'agit-il d'une table libre?
|
|
vendredi 27 juin 2008 à 08:53:46 |
Re : erreur 26 lors de l'ouverture de fichiers de données

stepber
|
Les tables sont sur une machine distante accessible par le réseau local, tout comme les programmes compilés qui sont lancés par un raccourci depuis le poste de l'utilisateur qui a les erreurs. Je précise que c'est la configuration type chez quasiment tous les autres utilisateurs finaux du logiciel qui n'ont jamais l'erreur 26.
Aucune des tables sur lesquelles une erreur 26 se produit parfois lors d'un "use..." n'est rattachée à un DBC.
|
|
lundi 30 juin 2008 à 09:41:15 |
Re : erreur 26 lors de l'ouverture de fichiers de données

MichelAtoutFox
|
Ah, ton problème est intéressant! quelques hypothèses et pistes de recherche:
- Est-ce que tu as quelque part un bout de code qui réindexerait ce fichier? on pourrait alors imaginer que cette réindexation ne soit pas correctement effectuée et que ton erreur 26 survienne après la réindexation
- peux-tu vérifier l'existence éventuelle d'autres fichiers DQCM_TRV.CDX qui serait accessible à cet utilisateur? si un tel fichier existe, et qu'il s'agit d'une version qui n'aurait pas ce tag, alors on pourrait envisager une erreur
- et enfin, si l'erreur se produit sur un seul poste, alors on doit regarder du coté de la config matérielle: en premier lieu toute la connectivité réseau pour ce poste, en 2ème lieu la RAM
|
|
lundi 30 juin 2008 à 16:43:04 |
Re : erreur 26 lors de l'ouverture de fichiers de données

stepber
|
Il existe effectivement une fonctionnalité qui réindexe de nombreux fichiers dont DQCM_TRV. Mais, au contraire, cette fonctionnalité permet visiblement de remettre en bon état les index du fichier suite à une erreur 26, puisque c'est en fait la seule solution pour les utilisateurs du logiciel de ne plus avoir l'erreur 26 systématiquement lorsqu'elle s'est produit une fois.
En effet, l'erreur 26 est déjà survenue sur plusieurs postes chez le client concerné, donc ne semble pas liée à des spécificités matérielles. Lorsque l'erreur s'est produit une fois, plus personne ne peut lancer la fonction du logiciel qui contient l'instruction "use...order 1..." sans avoir l'erreur 26 (logique puisque c'est le même fichier DQCM_TRV concerné) : le seul moyen de s'en sortir est de faire une réindexation.
Comme évoqué, je vais vérifier s'il existe bien un seul fichier DQCM_TRV.CDX accessible aux utilisateurs chez ce client.
|
|
mardi 30 septembre 2008 à 16:27:59 |
Re : erreur 26 lors de l'ouverture de fichiers de données

stepber
|
Depuis mon dernier message, j'attends toujours les données que l'utilisateur devait sauvegarder lorsque la dernière erreur 26 est survenue chez lui (notamment ses fichiers DQCM_TRV.DBF et DQCM_TRV.CDX), afin de tenter de reproduire l'erreur 26 en débogage, et de vérifier s'il existe bien un seul fichier DQCM_TRV.CDX accessible aux utilisateurs chez ce client. Il semblerait que l'erreur ne se soit produite qu'une ou 2 fois en 3 mois et à un moment où personne n'était en mesure de copier ces données, donc le sujet est toujours en stand-by. Je ne manquerai pas de poster un message dès que j'ai du nouveau...
|
|
Cette discussion est classée dans : ouverture, table, erreur, logiciel, dqcm
Répondre à ce message
Sujets en rapport avec ce message
erreur sur creation de table [ par ducker88 ]
Bonjour,Voila je veux creer une table dans une database existente, je me suis inspiré de l'aide de VFP et j'en ai tiré le code suivant : CREATE TABLE
Pieger erreur 52 sans ouverture boite de dialogue [ par gtweb ]
Peut-être très simple, mais quand on bute .....on bute !!!!Je cherche à gérer l'erreur 52 sans avoir à cliquer annuler dans la boite de dialogueVoici
Erreur dans une fonction :( [ par ducker88 ]
Bonjour,Voila j'ai creer une fonction transfert.prg qui à pour but de copier les donnée d'une table vers une autre. Je passe en parametre le nom de ce
Erreur foxprow 2.6 "Table de classement 'GENERAL' non trouvée" [ par arcademan59 ]
Bonjour à tous. Ce message s'adresse surtout aux vieux de la vieille, qui utilisaient (et utilisent encore peut etre) foxprow 2.6. Notre société util
erreur de lecture de fichier 1104 [ par stepber ]
Bonjour, je continue à avoir des désagréments chez des utilisateurs d'une application VFP9. Pour la 1ère fois, l'un d'eux me signale des erreurs de l
Message erreur lors d'éxecution d'une requete dans la fenetre des commandes [ par amhidi ]
Lorsque j'exécute une commande FOXPRO sous forme qune requete (select * from ..... where not in(select ....) ) j'ai le message d'erreur suivant : "IN
TABLE EN UNICODE [ par amhidi ]
On peut changer le code page d'une table grace au mot clé "as" ou cpdialog o u cpconvert (convertir par exemple en windows-1251....) Mais comment fa
logiciel CDS/ISIS de l'UNESCO [ par hassoub ]
Bonsoir, Peut on accéder à la base de données du logiciel CDS/ISIS de l'UNESCO à travers un drivers ODBC par exemple. merci. A.MAHALLA
Requete select sur une table foxpro [ par GarnierFlorian ]
Bonjour à tous ! et peut être à toutes^^ Mon problème se décompose en deux parties : dans un premier temps, j'aimerais savoir qu'elle est la syntaxe
problème curseur [ par omar70 ]
bonjour j'ai développer une application sous VFP qui marchait très bien. un jour, j'ai modifié et j'ai compilé. A l'exécution un message d'erreur s'af
Livres en rapport
|
Derniers Blogs
TFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICESTFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICES par vfabing
Afin de s'assurer du bon fonctionnement des différentes synchronisations effectuées par les TFS Integration Tools, 2 rapports sont présents dès l'installation. Il suffit alors d'effectuer les manipulations suivantes pour pouvoir les visualiser : Loca...
Cliquez pour lire la suite de l'article par vfabing CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|