Bonjour à tous et bonne année,
Est-il possible d'initialiser le compteur du champ autoincrémenté dans Paradox ?
Par exemple peut-on le faire démarrer à 1000 ?
Merci d'avance...
Bonjour à tous et bonne année,
Est-il possible d'initialiser le compteur du champ autoincrémenté dans Paradox ?
Par exemple peut-on le faire démarrer à 1000 ?
Merci d'avance...
Bonjour,
La réponse est oui. Cependant, l'opération n'est pas évidente, car il faut modifier quelques octets dans l'entête de la table.
Je dois avoir un bout de code pour faire la correction en automatique. Il s'agit de la remise à zéro, mais il convient de corriger pour partir de 1000. Je recherche dans la journée et je te l'adresse.
Je te donnerai également la position des octets concernés, car de mémoire, je ne me souviens plus.
Une question : Pourquoi veux-tu partir de 1000 ?
Attention si la clé autoincrémentée est utilisée comme clé étrangère dans une autre table. En cas de casse des index, la réparation provoque un beau bazar. Il faut donc gérer les clés étrangères de manière à pouvoir réparer les index sans casser les liaisons.
A plus
Salut;
sinon je te propose la solution suivante:
tu écris une petite fonction qui ajoute 999 enregistrements vide à ta table, ensuite tu les suupprime. Puis quand tu post ton nouveau enregistrement son champ auto passe à la valeur suivante c'est à dire 1000.
Bonne chance.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
- Mon blog: http://hazamor.over-blog.com/
Bonsoir à tous et merci de vos réponses,
Je suis assez intéressé par ta réponse Brodu, un morceau de code qui changerait quelques octets dans l'entête de la table, me conviendrait très bien. Pour répondre à ta question pourquoi 1000, j'ai une vieille table dbase à mettre à jour avec ma table paradox, dans ce fichier Dbase les numéros de dossier ne dépassent pas 900, si je pars à 1000 avec la base Paradox, je n'aurais pas de conflit. (J'espère en tout cas !!!).
Merci à toi Just Soft, si je n'ai pas de solution plus satisfaisante, j'irais à ta solution.
Pour ta réponse, Hazamor, je suis désolé, mais je ne la comprends pas, un morceau de code pour m'éclairer si tu as le temps.
Merci encore à vous tous.
Bonjour,
J'ai recherché, mais je n'ai pas trouvé le bout de code. Je te l'écris dans le weekend.
Par contre, j'ai bien retrouvé les explications techniques.
Dans le fichier "db", il faut modifier les octets 49 et 4A (valeurs en hexadécimales).
Pour inclure un départ à 1000 en notation décimale, il fait traduire en hexa soit 08E8.
La modification de l'entête du fichier concerné peut se faire avec un éditeur hexadécimal et inclure les chiffres comme suit :
- Adresse 49h inclure E8h
- Adresse 4Ah inclure 08h
Voilà, ton fichier db est opérationnel.
Bon courage et à bientôt.
Re;
très intéressante l'idée de hazamor !
mais comment faire un trigger pour les table Patadox ou dbf ?je te propose de faire un trigger After Insert sur votre table, ce trigger verifie si le valeur =1 ou non, si vrai il le mettre à jour par l'ajout de 999 à son valeur.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Bonjour,
Je te joins l'application complète pour modifier le compteur du champ autoincrémenté de Paradox. J'ai fait des essais concluants, mais attention tout de même car le programme n'est très certainement pas sécurisé pour toutes les fonctions.
Pour répondre à @Just-Soft. A ma connaissance, Paradox ne supporte pas les triggers. Donc la proposition de @hazamor ne peut pas être mise en oeuvre dans cette situation
A plus
Bonsoir à tous,
Quel plaisir ce forum !!! Pour ma part j'y trouve à 99 % les réponses à mes questions.
Merci beaucoup Brodu, je viens de tester, ça marche impeccable, juste ce qu'il me fallait.
Je te souhaite une bonne et heuseuse année.
A bientôt
Toutes mes félicitations BRODU je dirais tout simplement que ton astuce mérite une place dans la FAQ Delphi.
Bon courage ou Bonne Chance (selon le contexte)
Mon blog sur WordPress
Bonjour,
Merci @Just-Soft. Je ne sais pas si cette astuce mérite cette place, mais si vous pensez que cela peut aider, je vous donne mon accord.
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager