salut,
Pouvez vous m'indiquer comment réinitialiser un champ autoincrementable avec paradox apres avoir inserer quelque champs je veux reutiliser la table mais en commancant par ZERO.
merci d'avance!
salut,
Pouvez vous m'indiquer comment réinitialiser un champ autoincrementable avec paradox apres avoir inserer quelque champs je veux reutiliser la table mais en commancant par ZERO.
merci d'avance!
personnellement je supprime le champs et je le créer a nouveau et c'est réinitialisé, je sais pas si il y une autres solution plus propre.
"aityahia" merci pour ta reponse, c'est la meme methode que j'ai adobte mais j'ai pense qu'il y'a une meilleure solution. faudra changer de SGDBR comme Mysql ou Firebird.
Il existe plusieurs solution
- Destruction-Recréation du Champ (aityahia)
- Si la Table est Vide, tu peux tout simplement reprendre une strcuture de table vide
- Voir si en changeant, le ReadOnly sur le champ Auto-Inc si tu peux procéder à une rénumérotation (j'ai un vague souvenir à ce sujet)
- Gérer des Entiers et des compteurs séparés (très pratique pour la fusion de table)
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
J'arrive après la guerre... le message est résolu mais sur la FAQ j'avais trouvé :
a+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure setAutoInc(sFilename : string; iValeur:Longint); var myStream : tFileStream; begin myStream := tFileStream.create(sFileName, fmOpenWrite + fmShareExclusive); myStream.Seek(73, soFromBeginning); myStream.WriteBuffer(iValeur, 4); myStream.Free; end;
Merci pour vos réponses
La procédure de "Zatoobux" fonctionne a merveille, et je pense que c'est la meilleure solution pour ce problème
salut
Petite précision : avec un ReadBuffer à la place du writeBuffer, tu peux connaître la valeur en cours de l'auto-incrément...
Par contre je ne retrouve pas ce code dans la FAQ mais je suis certain que je l'ai trouvé sur developpe.com...
a+
2--
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function ResetAutoInc(FileName: TFileName; NewValue:Longint): Boolean; begin with TFileStream.Create(FileName, fmOpenReadWrite) do try Result := (Seek($49, soFromBeginning) = $49) and (Write(NewValue, 4) = 4); finally Free; end; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part ResetAutoInc('C:\Database\MaTable.DB',0)
C'est gentil de fournir une réponse 4 ans plus tard, c'est finalement le même code que celui de Zatoobux en plus propre que tu as pompé sur la réponse de 2008 de freud dans le sujet Réinitialiser la valeur d'un champs Inc Auto(+) mais lui avait cité la source : Delphi3000
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
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