cs_akzo
Messages postés133Date d'inscriptiondimanche 23 juin 2002StatutMembreDernière intervention 3 janvier 2015
-
11 juil. 2010 à 21:23
cs_akzo
Messages postés133Date d'inscriptiondimanche 23 juin 2002StatutMembreDernière intervention 3 janvier 2015
-
13 juil. 2010 à 10:57
Bonsoir a tous
j'ai besoin d'une aide pour un code plus simple que ce que j'utilise deja et qui fonctionne
je presente ma table de cette facon
numauto nom prenom .........
1 xxx yyyyy
2 0 0
3 zzz tttt
je veux obtenir dans la meme table
numauto nom prenom .........
1 xxx yyyyy
2 zzz ttt
3 0 0
pour le moment je fait une requete qui prends tous mes champ de la ligne 3 avec un select *
Je fait ensuite donnée1=nom
donnée2=prenom
donnéeX= ....
ensuite j'utilise deux requetes update
la premiere recupere mes données pour les inscrire dans la ligne 2 (update table set nom=donnée1,prenom=donnée2 ......)
la seconde requete mes les champs a zero update table set nom=0,prenom=0 ......)
cela fonctionne tres bien
mais existe t'il quelque chose de plus rapide qui me ferais moins de code a ecrire car pour l'instant si j'ai 100 champs il me faudra tout ecrire de donnée1 a donnée100 et idem pour mes deux requetes qui suivent
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 juil. 2010 à 00:52
Salut
Non, il faudra continuer à faire ces décalages toi-même.
Seule chose, c'est que les champs peuvent être désignés par leur index (0 pour le numéro auto, 1 pour le nom et 3 pour le prénom) : du coup, tu peux facilement faire une boucle.
En fait, ce qui te perturbe, c'est ce numéro auto.
Beaucoup de gens prennent ce chiffre pour un chiffre "viable" alors qu'il n'est qu'un chiffre assurant que ce numéro sera unique dans la table.
Inconvénient : on ne maitrise pas sa valeur et comme tu lui donné une signification, te voilà embêté.
Solution possible : Laisse ce numéro auto n'être qu'un index, une clé primaire, et définit un nouveau champ dans lequel tu pourras mettre la valeur numérique que TU souhaites. Cela t'évitera ce genre de manip de décalage.
Pour savoir quel est le prochain numéro à utiliser, une simple requète recherchant le Max(monNuméro) auquel tu ajouteras 1 fera l'affaire.
Dernière chose : si tu n'as plus besoin d'un enregistrement, ne fait pas un Update avec des champs vidés, mais supprime (Delete) cette ligne de données, ça t'évitera d'avoir à les trainer derrière.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_akzo
Messages postés133Date d'inscriptiondimanche 23 juin 2002StatutMembreDernière intervention 3 janvier 20153 13 juil. 2010 à 10:57
bonjour,
Merci pour vos reponses
Actuelement j'ai ecrit mon code de maniere a recuperer l'ensemble de mes valeurs puis de faire qu'un seul update pour les faires changer de lignes.
J'ai choisi cela car les boucles c'est bien plus simple pour programmer mais s'il y a 100 champs ca fait pas mal de requete et donc un ralentissement.