|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 156 ![]() |
bonjour,
je pose mon problème : j'ai une base access avec une table. je remplis cette table par l'intermédiaire d'une IHM VB Lorsque je supprime une entrée et que j'ajoute la suivante elle sera stockée sur la suivante et non celle supprimée je cherche donc de l'aide pour trouver une requête qui m'identifierait le premier trou rencontré pour qu'ensuite je le remplisse par la nouvelle entrée. J'ai trouvé http://www.developpez.net/forums/d79...e/#post4602718, mais j'ai du mal a l'adapter. J'ai aussi trouvé ceci : Code :
Existe-t-il donc une requête qui ferait la même chose et qui en plus si null est trouvé me renverrait l'index le plus élevé ? Cordialement |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Si ces trous que tu cherches à combler sont sur la colonne clé primaire de la table, laquelle est probablement de type NumAuto, ne le fais pas !
![]() Une clé primaire doit être invariable, sans signification, non présentée à l'utilisateur et utile seulement pour le SGBD pour gérer les associations entre tables.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 156 ![]() |
Bon, d'accord, ça c'est fait comme on dit ^^
Mais cela ne pose pas de problème plus tard dans le temps ? si dans l'avenir j'ai 100 entrées et que j'en supprime 40, il y aura un trou de 40, ce n'est pas "grave" ? Cela ne grossit pas la base pour rien ? et pour précision c'est en effet une clé primaire Auto-Incrémenté. Mais lors de ma requête INSERT INTO je dois mettre une valeur, sinon j'ai une erreur : "Le nombre de valeurs de la requête doit coïncider avec le nombre de champs destination" Pour info voici ma requète : Code :
INSERT INTO MaTableVALUES ('000000000A','1121','20','14','161','134','225',True) |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Pour info, les "trous", n'ont aucune importance ! ça ne grossit pas la base, puisque justement ils n'y sont pas, et que le vide ne prend pas de place pour ton insertion, si tu as une clef auto-incrémentée, il faut que tu nommes explicitement les colonnes que tu renseignes, dans l'ordre dans lequel tu les mets dans la liste qui suit VALUES Code sql : INSERT INTO MaTable(Colonne2, Colonne3,...) VALUES('valeur pour la colonne2', 'Valeur pour la colonne 3',...) Ta colonne en autoincrément prendra automatiquement sa valeur |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 156 ![]() |
je connaissais le fait de donner avant le VALUES les intitulés de colonne, mais je voulais être sûr qu'il n'y avait pas d'autre possibilité que celle-ci, car lorsqu'il y a plus de 10 colonnes, ça fait long dans la requête
Et merci pour la précision du vide
|
|
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Citation:
Je ne connais pas le fonctionnement d'Acces mais sous d'autres sgbd des "trous" suite à des delete qui peuvent prendre de la place. edit :avant qu'on me saute dessus, ce n'est pas le saut de numéro de clef qui en prendra mais plutôt l'espace disque engendré par un delete qui peut ne pas être réutilisé. |
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 156 ![]() |
Erf, et je peux le savoir comment si mon SGBD prend de la place ?
|
|
|
00
|
|
|
#8 |
![]() ![]() |
Es-tu as ce point limité en espace disque que tu t'inquiètes déjà de la taille de ta BDD ?
Parce que si ta BDD est appelée à devenir très grosse, il vaut mieux de suite envisager de passer à un vrai SGBDR en mode serveur.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 156 ![]() |
Et bien pour le moment la base serait sur un PC en local et il n'y aurait que ça sur ce pc qui tournerait. Il serait réservé pour le stockage de la BDD.
Et au premier abord, elle serait amenée a grandir, mais surement pas plus de 100 entrées par table. Mais dans le cas où elle devrait grandir et devenir importante, vers quel SGBDR ? |
|
|
00
|
|
|
#10 |
![]() ![]() |
Ouarf ! C'est ridicule !
Ne t'inquiète pas pour la place !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#11 |
![]() ![]() |
Non rassurez-vous, tant que vous ne frôlerez pas quelques centaines de milliers de lignes vous ne devriez pas avoir de soucis.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 156 ![]() |
Mdr en effet, c'est ridicule
Mais pourriez vous me diriger au cas ou, s'il vous plait ? |
|
|
00
|
|
|
#13 |
![]() ![]() |
Comme toujours, la réponse c'est "ça dépend".
Je vous invite à potasser le forum dédié.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2008 Messages : 156 ![]() |
je n'en attendais pas moins de vous
Encore merci pour votre aide |
|
|
00
|
|
|
#15 |
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Pour ce qui est de l'espace pris lors des delete, pour le récupérer sous Acces 97, on faisait un compactage, et à l'époque le compactage d'une base access était conseillé comme opération de maintenance régulièrement. Je ne pense pas que ça ait changé depuis. Cordialement Soazig |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com