Norme pour les apostrophes [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 20-01-2007 à 20:58:37
L'antislash est une solution qui convient pour certaines bases de données, mais je crois que la norme est le doublement de l'apostrophe, par exemple
Insert into Table1 (Colonne1) Values ('Aujourd''hui'); |
Le résultat est le stockage d'une seule apostrophe.
Marsh Posté le 21-01-2007 à 10:52:12
non pas d'accord. On stocke que ce qui est nécèssaire en DB.
Maintenant la façon dont on envoie l'infos, et de la façon dont on l'a récupére dépend bien entendu de l'SGBD .
Entre autre, si on voulait enregistré des infos dans une db SQL SERVER en C#, on utiliserait les SQLParameter pour justement palier à ce problème de doublement d'appostrophe. Il se chargerait donc de ne pas rendre la requête invalide.
Marsh Posté le 21-01-2007 à 11:12:09
olivthill a écrit : L'antislash est une solution qui convient pour certaines bases de données, mais je crois que la norme est le doublement de l'apostrophe, par exemple
Le résultat est le stockage d'une seule apostrophe. |
+1
Marsh Posté le 22-01-2007 à 16:38:24
'' : Norme SQL, qui est aussi utilisée par .NET avec le préfixe @.
\' : Norme ANSI, qui est aussi utilisée par la plupart des langages.
Moi > Dans tous les cas, la norme SQL (donc '') doit être acceptée. ANSI peut être ajoutée si les dev du SGBD en éprouvent le besoin.
A noter que % doit subir le même sort que ' dans un LIKE et uniquement dans un LIKE : "%%" pour rechercher "%".
Dans les autres cas, le SGBD soit traîter %% comme deux %. (c'est supaïr pratique )
Marsh Posté le 20-01-2007 à 20:14:04
Bonjour,
Je me posais une question. Je cherche à faire un site respectueux des normes et regles.
Pour cela je me posais une question, à savoir si dans les champs de type texte (varchar, text, etc...) on stoquait les apostrophes seuls, ou bien avec l'inhibiteur devant.
Par exemple pour la valeur Chateau d'eau, doit-on enregistrer :
chateau d'eau
ou bien encore :
chateau d\'eau
Car en premier lieu j'aurai pensé qu'il ne fallait pas stocker les \ (pour faciliter la recherche d'information) mais ca bug trop souvent, donc j'en arrive à me poser la question.
Cordialement,
alexandre