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 dans requete sur GROUP BY [ par ducker88 ]
Bonjour a tous,Voila mon probleme, je suis passé de VFP 6.0 à VFP 9.0Globalement la migration à bien fonctionné. Mis a part le fait que maintenant lor
Ajout champ dans table [ par ducker88 ]
Bonjour a tous,Voila j'aimerai créer une fonction qui permettrai d'ajouter un champ à une table.Cette fonction dois avoir comme parametre le nom de la
Existence d'une table [ par ducker88 ]
Bonjour,Existe t'il un moyen simple de verifier l'existence d'une table et savoir si elle est disponible.Merciduck88
Erreur 1196 du jour au lendemain...? [ par zxr_stinger ]
Bonjour, j'ai pour mon plaisir créer un projet duquel est né un .EXE. celui-ci fonctionne depuis plus d'un an sans aucun problème. J'ai eut un souci
Copie d'une table a l'autre [ par ducker88 ]
Bonjour a tousJe voudrais savoir s'il existe une fonction permettant de copier les données d'une table foxpro vers une autre table qui aurai des champ
Trouver clé primaire [ par ducker88 ]
Bonjour,Est t'il possible de trouvé automatiquement la clé primaire en connaissant la table ?Je voudrais realiser une fonction permettant de renvoyer
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010TECHDAYS PARIS 2010 : LA GED ET SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Etienne Lacour Cette session a commencé par un rappel de la gestion de contenu et surtout une résumé des points ayant été amélioré avec 2010. Accompagné d'un point sur le cycle de vie des documents. Un rappel du fonctionnement de S...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUXTECHDAYS PARIS 2010 : SHAREPOINT 2010 ET LES RéSEAUX SOCIAUX par ROMELARD Fabrice
Animé par: Olivier Lepeltier et Karim Manar Cette session commence par la présentation du concept de réseau social, mais surtout de la particularité de du réseau social dans une entreprise. La vision du réseau social est donc une extension du MyS...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéSTECHDAYS PARIS 2010 : SHAREPOINT 2010 - DESCRIPTION ET NOUVEAUTéS par ROMELARD Fabrice
Animé par: Karim Manar et Laurent Beaudouin Cette session a pour but de revenir sur ce qu'est SharePoint globalement, mais aussi de voir les évolutions liées avec l'avènement de la version 2010. A partir de la marguerite de...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLEINIèRE LUNDITECHDAYS PARIS 2010 : PLEINIèRE LUNDI par ROMELARD Fabrice
Comme chaque année, c'est le grand rassemblement autour des technologies Microsoft qui se déroule donc à Paris au Palais des Congrès. Cette année est riche pour Microsoft en terme de livraison produit, paris l...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|