|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Sylvain GourvilFreelance en développement Web Inscription : mars 2005 Messages : 248 ![]() |
Bonjour a tous !
Voila, j'insère des données (code postaux) dans une champ d'une table décléré en varchar(5) et ceci afin que le 0 qui se trouve devant le code postal 01200 par exemple soit ecrit tel quel dans la table. Code :
Je n'y arrive pas. Y a-t-il une regle pour ce genre de choses. Le SGBD interprete ca comme une chaine donc normalement il ne sais meme pas que c un chiffre ==> pas de rertait du 0. J'avoue trouver ca étrange et je me doute bien que ca vient de moi. |
||
|
00
|
|
|
#2 |
|
Membre habitué
![]() Sylvain GourvilFreelance en développement Web Inscription : mars 2005 Messages : 248 ![]() |
OK, autant pour moi.
je faisais cela Code :
$reqPOST = "Insert into grande_ville VALUES ($cp_ville, '".$ville."');"; Code :
$reqPOST = "Insert into grande_ville VALUES ('".$cp_ville."', '".$ville."');"; Quelqu'un pourrait m'expliquer, ca pourrait etre important. Merci |
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : mai 2002 Messages : 131 ![]() |
Je viens de faire quelques petits tests avant de formuler ma réponse. Déjà, ce comportement se reproduit dans d'autres SGBDR : j'ai testé à l'instant avec succès avec Sybase ASA, et je pense que souvenir que MySQL accepte ceci. Tout ceci fonctionne aussi en "sens inverse". Essaie d'insérer dans un champ numérique une chaîne de caractères contenant un nombre valide, tu verras qu'il s'exécute sans broncher : "insert into table (id) values ('132')", avec id étant un entier, ne renvoie pas d'erreur.
Je n'ai pas pris le temps de tester des insertions du genre un timestamp dans un champ date ou un champ time, mais j'imagine que cela fonctionne également. Pour expliquer cela... je pense que les SGBDR sont capables de faire des conversions "évidentes" en réalisant implicitement des CAST. Dans ton cas, un integer est détecté (donc les 0 non significatifs sautent) puis transtypé en varchar pour coller avec la définition du champ de la table. |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Sylvain GourvilFreelance en développement Web Inscription : mars 2005 Messages : 248 ![]() |
C'est bien ce que je pensais mais ca me parassait très surprenant que les SGBD performants fassent cela.
Mais une fois que le développeur connait cette caractéristiques, cela peut aider. Puisqu'il est toujours possible d'insérér la valeur voulue mais il est aussi possible de faire un pseudo transtypage auto sans se prendre la tête. Je te remercie ne tout cas. Je ferais des tests mais la je suis occupé a autre chose. Bonne journée. |
|
00
|
Copyright © 2000-2012 - www.developpez.com