Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > Paradox
Paradox Forum d'entraide sur Paradox, et sur Borland Database Engine
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/10/2002, 17h26   #1
Invité de passage
 
Inscription : octobre 2002
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 6
Points : 1
Points : 1
Par défaut Pb d'auto-incrément sur une table v7

Bonjour

Je suis face à un gros gros problème avec une appli utilisant des tables Paradox (v7).
A l'ajout d'un enregistrement, il me répond 'violation de clé' . Cette table en question possède un champs indexé avec auto-incrément. Hors normalement, dans ce genre de configuration, on ne doit pas avoir de problème d'insertion.

Après Etude, je me suis rendu compte qu'à un moment donné, l'auto-incrément saute complètement.

Donc ma question est de savoir si quelqu'un à déjà rencontré ce problème, et si une solution existe !!!

Merci d'avance
Nivux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2002, 22h25   #2
Membre régulier
 
Inscription : mars 2002
Messages : 227
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : mars 2002
Messages : 227
Points : 91
Points : 91
Envoyer un message via ICQ à jean christophe
Je fais toujours:
Code :
1
2
3
 
Tbl.Last;
Tbl.INSERT;
si ton current est 5 et que tu inséres, il va écrire 6. et si 6 est lá....crac.
Je ne suis pas gourou, mais je n'ai pas ce genre de probléme de cette facon.
A+
jean christophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2002, 08h59   #3
Invité de passage
 
Inscription : octobre 2002
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 6
Points : 1
Points : 1
Donc, le problème serait un soucis de code et non un bug de paradox ?
Nivux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2002, 13h33   #4
LFE
Membre actif
 
Inscription : juillet 2002
Messages : 95
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 95
Points : 180
Points : 180
ou un probleme de corruption de Fichier

J'ai deja eu le cas, mais je ne travaille pas avec des Insert, uniquement des Append....

un rebuild de la table a tout remis en place.
LFE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2002, 17h02   #5
Invité de passage
 
Inscription : octobre 2002
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 6
Points : 1
Points : 1
Et qu'appelles tu un rebuild de la table ?
Nivux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2002, 22h24   #6
LFE
Membre actif
 
Inscription : juillet 2002
Messages : 95
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 95
Points : 180
Points : 180
Dans Corel Paradox, tu as dans les menu une option de reparation des tables

Je regarde demain au bureau pour te dire exactement ou elle se trouve.
LFE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2002, 22h37   #7
Invité de passage
 
Inscription : octobre 2002
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 6
Points : 1
Points : 1
Le pb, c'est d'avoir Corel Paradox car, moi, je travail avec le module de base de données de Delphi 6.
Donc si tu as quelque chose à me proposer ...

Merci d'avance
Nivux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2002, 22h42   #8
LFE
Membre actif
 
Inscription : juillet 2002
Messages : 95
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 95
Points : 180
Points : 180
Database Desktop, menu Tools/utilities / Restructure.

Tu ne change rien à la structure , tu coches 'pack Table'
tu cliques ensutie sur Save.

En ayant bien entendu fait une copie de ta table au préalable.

Ca m'a deja aide une fois ou l'autre, mais rien de tel que Corel Paradox.
LFE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2002, 10h42   #9
Invité régulier
 
Inscription : octobre 2002
Messages : 5
Détails du profil
Informations forums :
Inscription : octobre 2002
Messages : 5
Points : 6
Points : 6
Envoyer un message via MSN à Dals
J'ai eu le même bleme mais le fait de restructurer ne l'a pas résolu.

J'ai donc été obligé de dumper le fichier .DB comme suit:
- j'ai vu que le N° de la derniere valeur champ autoincrementé est à 32561.
- J'ai ouvert le fichier .DB dans un éditeur héxadécimal.
- Je me suis positionné sur l'octet 49h et 50h (qui est décrit comme emplacement de la valeur courante de l'autoincfield dans un fichier db), l'ai lu la valeur actuelle du champ qui était à 32488. DOnc effectivement, j'ai un problème à chaque ajout.
- J'ai donc décidé de mettre cette valeur à 32562 (converti au préalable en en Hexa) de manière à ce que la prochaine valeur soit supérieure à la valeur maximale de la clé.
- J'ai enregistré et quitté.
- J'ai testé et ca marche !

Bien sûr, les sauvegardes ont été faites avant, et si tu veux l'approfondir, consulte le document "Paradox survival guide" de ce forum.

a+
Dals est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2002, 12h05   #10
Invité de passage
 
Inscription : décembre 2002
Messages : 4
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : décembre 2002
Messages : 4
Points : 2
Points : 2
Envoyer un message via MSN à 06Sergio Envoyer un message via Skype™ à 06Sergio
Dernier petit truc :

Pour les tables paradox qui commencent à avoir une taille conséquente, je vous conseille de les restructurer en changeant la taille de blocks à 32.

ceci est indispensable pour les grosses tables car sinon on à plein de désagréments comme cette histoire d'auto incrément.

Par contre il faut absolument faire une copie de votre table avant,
vider la table d'origine (c'est plus rapide en plus)
La restructurer en mettant type de table : Paradox 7 et nb de block : 32

et ensuite ajouter les enregistrements de la sauvegarde à votre table nouvellement restructurée.
sinon, et ca le fait à tout les coups sur les grosses tables, vos données sont corrompues.

voilou.
06Sergio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h43.


 
 
 
 
Partenaires

Hébergement Web